Изображение с движущимися объектами
Особенности и основные этапы создания изображения с тремя движущимися объектами при помощи графического режима Graph в Паскале. Разработка программы с текстом не меньше четырехсот строк. Использование динамической памяти при создании движения изображения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | отчет по практике |
Язык | русский |
Дата добавления | 14.06.2014 |
Размер файла | 564,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное
учреждение высшего профессионального образования
«Ижевский государственный технический университет имени М.Т. Калашникова»
(ИжГТУ имени М.Т. Калашникова)
Факультет «Информатика и вычислительная техника»
Кафедра «Вычислительная техника»
Отчет по вычислительной практике
По предмету: Программирование на языке высокого уровня
Выполнил: студен группы 461з
Макшанов И.А.
Проверил: Талашева В.С.
Ижевск 2012
Содержание
1. Задание
2. Листинг программы
3. Результат
1. Задание
При помощи графического режима Graph в паскале создать изображение с тремя движущимися объектами. В тексте должно присутствовать не меньше четырех ста строк, так же при создании движения изображения необходимо воспользоваться динамической памятью.
2. Листинг программы
uses crt, graph;
var gd,gm:integer;
Procedure Dom;
Begin
SetFillStyle(2,6); {Steni doma}
Bar(200, 200, 400, 300);
SetFillStyle(3,6); {Dver'}
Bar(320, 220, 370, 300);
SetColor(8); {Risyem ruchky ot dveri}
SetLineStyle(0,0,3);
Circle(325,255,2);
SetFillStyle(4,6); {Okno v dome}
Bar(220, 220, 260, 260);
SetColor(15);
Line(220, 240, 260, 240);
Line(240, 220, 240,260);
SetLineStyle(0,0,0);
SetColor(7); {Krisha}
SetFillStyle(5,7);
MoveTo(200,200);
LineTo(300,120);
LineTo(400,200);
LineTo(200,200);
FloodFill(300,199,7);
SetColor(7); {Okoshko na krishe}
SetLineStyle(0,0,3);
circle(300, 160, 20);
SetColor(15);
line(300, 140, 300, 180);
line(280, 160, 320, 160);
SetLineStyle(0,0,0);
SetColor(4); {Risuem tryby}
SetFillStyle(6,4);
MoveTo(215,155);
LineTo(215,187);
LineTo(240,167);
LineTo(240,155);
LineTo(215,155);
FloodFill(225,170,4);
End;
Procedure Zabor;
var Metka1,Metka2:integer;
Zabor_R_x1,Zabor_R_y1,Zabor_R_x2,Zabor_R_y2:integer;
Zalivka_R_T1_1,Zalivka_R_T1_2,Zalivka_R_T2_1,Zalivka_R_T2_2,Zalivka_R_T3_1,Zalivka_R_T3_2,Zalivka_L_1,Zalivka_L_2:integer;
Zabor_L1_x1,Zabor_L1_y1,Zabor_L1_x2,Zabor_L1_y2:integer;
Zabor_L2_x1,Zabor_L2_y1,Zabor_L2_x2,Zabor_L2_y2:integer;
Begin
Zabor_R_x1:=1;
Zabor_R_x2:=10;
Zabor_R_y1:=260;
Zabor_R_y2:=300;
Zalivka_R_T1_1:=2;
Zalivka_R_T1_2:=261;
Zalivka_R_T2_1:=2;
Zalivka_R_T2_2:=275;
Zalivka_R_T3_1:=2;
Zalivka_R_T3_2:=299;
Zabor_L1_x1:=1;
Zabor_L1_x2:=5;
Zabor_L1_y1:=260;
Zabor_L1_y2:=250;
Zabor_L2_x1:=5;
Zabor_L2_x2:=10;
Zabor_L2_y1:=250;
Zabor_L2_y2:=260;
Zalivka_L_1:=2;
Zalivka_L_2:=259;
Rectangle(0, 265, 199, 270);
FloodFill(1,266,15);
Rectangle(0, 285, 199, 290);
FloodFill(1,286,15);
For Metka1:=1 to 13 do
Begin SetColor(15);
Rectangle(Zabor_R_x1,Zabor_R_y1,Zabor_R_x2,Zabor_R_y2);
Zabor_R_x1:=Zabor_R_x1+15;
Zabor_R_x2:=Zabor_R_x2+15;
FloodFill(Zalivka_R_T1_1,Zalivka_R_T1_2,15);
FloodFill(Zalivka_R_T2_1,Zalivka_R_T2_2,15);
FloodFill(Zalivka_R_T3_1,Zalivka_R_T3_2,15);
Zalivka_R_T1_1:=Zalivka_R_T1_1+15;
Zalivka_R_T2_1:=Zalivka_R_T2_1+15;
Zalivka_R_T3_1:=Zalivka_R_T3_1+15;
Line(Zabor_L1_x1,Zabor_L1_y1,Zabor_L1_x2,Zabor_L1_y2);
Line(Zabor_L2_x1,Zabor_L2_y1,Zabor_L2_x2,Zabor_L2_y2);
Zabor_L1_x1:=Zabor_L1_x1+15;
Zabor_L1_x2:=Zabor_L1_x2+15;
Zabor_L2_x1:=Zabor_L1_x1+5;
Zabor_L2_x2:=Zabor_L1_x2+5;
FloodFill(Zalivka_L_1,Zalivka_L_2,15);
Zalivka_L_1:=Zalivka_L_1+15;
End;
Zabor_R_x1:=410;
Zabor_R_x2:=420;
Zalivka_R_T1_1:=411;
Zalivka_R_T2_1:=411;
Zalivka_R_T3_1:=411;
Zabor_L1_x1:=410;
Zabor_L1_x2:=415;
Zabor_L2_x1:=415;
Zabor_L2_x2:=420;
Zalivka_L_1:=411;
Rectangle(401, 265, 650, 270);
FloodFill(402,266,15);
Rectangle(401, 285, 650, 290);
FloodFill(402,286,15);
For Metka2:=1 to 16 do
Begin SetColor(15);
Rectangle(Zabor_R_x1,Zabor_R_y1,Zabor_R_x2,Zabor_R_y2);
Zabor_R_x1:=Zabor_R_x1+15;
Zabor_R_x2:=Zabor_R_x2+15;
FloodFill (Zalivka_R_T1_1,Zalivka_R_T1_2,15);
FloodFill (Zalivka_R_T2_1,Zalivka_R_T2_2,15);
FloodFill (Zalivka_R_T3_1,Zalivka_R_T3_2,15);
Zalivka_R_T1_1:=Zalivka_R_T1_1+15;
Zalivka_R_T2_1:=Zalivka_R_T2_1+15;
Zalivka_R_T3_1:=Zalivka_R_T3_1+15;
Line (Zabor_L1_x1,Zabor_L1_y1,Zabor_L1_x2,Zabor_L1_y2);
Line (Zabor_L2_x1,Zabor_L2_y1,Zabor_L2_x2,Zabor_L2_y2);
Zabor_L1_x1:=Zabor_L1_x1+15;
Zabor_L1_x2:=Zabor_L1_x2+15;
Zabor_L2_x1:=Zabor_L1_x1+5;
Zabor_L2_x2:=Zabor_L1_x2+5;
FloodFill (Zalivka_L_1,Zalivka_L_2,15);
Zalivka_L_1:=Zalivka_L_1+15;
End;
End;
Procedure Derevo;
Var i,x0,y0:integer;
Begin
setcolor(6);
rectangle (495,250,515,299);
setfillstyle (1,6);
floodfill (496,251,6);
setfillstyle (1,2);
fillellipse(500,200,80,65);
i:=0;
setfillstyle(1,12);
repeat
inc(i);
x0:=random(160)+420;
y0:=random(130)+130;
if Getpixel(x0,y0)=2 then fillellipse(x0,y0,5,5);
until i=50;
End;
Procedure Luzhaika;
Begin
SetColor(2);
SetFillStyle(1,2);
Rectangle(0, 300, 650, 410);
FloodFill(2,301, 2);
SetColor(15); {Grip}
SetFillStyle(1,15);
Ellipse(485,310,0,360,2,5);
FloodFill(486,311,15);
SetColor(6);
SetFillStyle(1,6);
Ellipse(485,305,0,360,6,2);
FloodFill(485,305,6);
SetColor(15); {Grip}
SetFillStyle(1,15);
Ellipse(510,301,0,360,2,5);
FloodFill(511,302,15);
SetColor(7);
SetFillStyle(1,7);
Ellipse(510,296,0,360,6,2);
FloodFill(510,296,7);
SetColor(15); {Grip}
SetFillStyle(1,15);
Ellipse(515,305,0,360,2,5);
FloodFill(515,305,15);
SetColor(6);
SetFillStyle(1,6);
Ellipse(515,300,0,360,6,2);
FloodFill(515,300,6);
SetColor(15); {Grip}
SetFillStyle(1,15);
Ellipse(495,300,0,360,2,5);
FloodFill(495,300,15);
SetColor(4);
SetFillStyle(1,4);
Ellipse(495,295,0,360,6,2);
FloodFill(495,295,4);
End;
Procedure Doroga;
var Metka:integer;
Tochka_x1,Tochka_x2,Tochka_y1,Tochka_y2:integer;
Zakraska_x,Zakraska_y:integer;
Begin
SetColor(8);
SetFillStyle(1,8);
Rectangle(0, 410, 650, 500);
FloodFill(1,450,8);
SetColor(15);
SetFillStyle(7,15);
Tochka_x1:=1;
Tochka_x2:=40;
Tochka_y1:=445;
Tochka_y2:=448;
Zakraska_x:=2;
Zakraska_y:=446;
For Metka:=1 to 13 do
Begin Rectangle(Tochka_x1,Tochka_y1,Tochka_x2,Tochka_y2);
Tochka_x1:=Tochka_x1+50;
Tochka_x2:=Tochka_x2+50;
FloodFill(Zakraska_x,Zakraska_y,15);
Zakraska_x:=Zakraska_x+50;
End;
End;
Procedure Mashina;
Begin
setcolor(4); {Kuzov}
rectangle(420, 400, 600, 420);
setfillstyle(1,4);
floodfill(599, 401, 4);
setcolor(7); {Bagazhnik}
circle(450, 425, 10);
setfillstyle(1,7);
floodfill(450, 425, 7);
circle(570, 425, 10);
setfillstyle(1,7);
floodfill(570, 425, 7);
setcolor(15); {Kabina}
line(476, 399, 500, 375);
line(500, 375, 515, 375);
line(515, 375, 515, 399);
line(476, 399, 515, 399);
setfillstyle(1, 15);
floodfill(500, 390, 15);
setcolor(6);
arc(558, 400, 362, 538, 42);
line(516, 399, 600, 399);
setfillstyle(1,6);
floodfill(520, 390, 6);
End;
Procedure Solnce;
Begin
setcolor(14);
circle (50,150,30);
setfillstyle(1,14);
floodfill(50,150,14);
setcolor(8);
circle(35,140,5);
setfillstyle(4,8);
floodfill(35,140,8);
circle(65,140,5);
setfillstyle(5,8);
floodfill(65,140,8);
arc(50,160,580,330,10);
End;
Procedure Dim;
Begin
SetColor(15); {Bol'shoe oblako}
SetFillStyle(1,15);
Circle(226,118,18);
FloodFill(226,110,15);
SetColor(15); {Srednee oblako}
SetFillStyle(1,15);
Circle(226,128,15);
FloodFill(215,135,15);
FloodFill(235,135,15);
SetColor(15); {Malen'koe oblako}
SetFillStyle(1,15);
Circle(226,139,10);
FloodFill(226,137,15);
FloodFill(226,146,15);
End;
Procedure Vodoem;
Begin SetColor(1);
SetFillStyle(1,1);
Ellipse(100,330,0,360,90,20);
FloodFill(100,330,1);
SetColor(10); {Kyvshinka}
SetFillStyle(1,10);
Ellipse(50,330,0,360,35,10);
FloodFill(50,330,10);
SetColor(15); {Cvetok}
SetFillStyle(1,15);
Ellipse(35,325,0,360,2,5);
FloodFill(35,325,15);
Ellipse(35,335,0,360,2,5);
FloodFill(35,335,15);
Ellipse(30,330,0,360,5,2);
FloodFill(30,330,15);
Ellipse(40,330,0,360,5,2);
FloodFill(40,330,15);
SetColor(14);
SetFillStyle(1,14);
Circle(35,330,4);
FloodFill(35,330,14);
SetColor(6); {Ytka}
SetFillStyle(1,6);
Ellipse(130,335,0,360,20,7); {Tulovishe}
FloodFill(130,335,6);
Bar(110,320,115,335); {Sheya}
Circle(111,320,5); {Golova}
FloodFill(107,320,6);
SetColor(14); {Klyv}
SetFillStyle(1,14);
MoveTo(100,320);
LineTo(106,318);
LineTo(106,322);
LineTo(100,320);
FloodFill(101,320,14);
SetColor(8); {Glaz}
SetFillStyle(1,8);
Circle(110,318,2);
FloodFill(110,318,8);
SetColor(7); {Per'ya}
Ellipse(130,334,10,165,10,3);
Ellipse(130,337,10,165,10,3);
SetColor(7); {Hvost}
SetFillStyle(1,7);
MoveTo(147,330);
LineTo(155,325);
LineTo(157,327);
LineTo(149,333);
LineTo(147,330);
FloodFill(148,330,7);
End;
Procedure Veshalka;
Begin
SetColor(7); {Palka}
SetFillStyle(1,7);
Bar(70,200,72,300);
Circle(70,200,4); {Nakone4nik}
FloodFill(69,200,7);
SetColor(15); {Verevka}
Ellipse(135,200,180,360,65,10);
SetColor(1); {Shtani}
SetFillStyle(1,1);
MoveTo(96,209);
LineTo(115,210);
LineTo(115,250);
LineTo(108,250);
LineTo(107,220);
LineTo(106,250);
LineTo(98,250);
LineTo(96,209);
FloodFill(110,215,1);
SetColor(10); {Rubaha}
SetFillStyle(1,10);
MoveTo(140,210);
LineTo(180,208);
LineTo(190,225);
LineTo(180,229);
LineTo(175,220);
LineTo(175,250);
LineTo(145,250);
LineTo(145,220);
LineTo(140,229);
LineTo(130,225);
LineTo(140,210);
FloodFill(150,230,10);
End;
Procedure Dvizhenie;
Var x,y,x1,y1,x2,y2:longint;
p,p1,p2:pointer;
Image,Image1,Image2:Integer;
Begin
Image1:=ImageSize(19,115,80,181);
Getmem(p1,Image1);
GetImage(19,115,80,181,p1^);
For x1:=1 to 600 do
begin y1:=round(115*sin(x1/-200)+115);
PutImage(x1,y1,p1^,CopyPut);
Delay(1);
end;
Image:=ImageSize(419,355,601,441);
Getmem(p,Image);
GetImage(419,355,601,441,p^);
For x:=419 downto 0 do
Begin y:=355;
PutImage(x,y,p^,CopyPut);
Delay(1);
End;
Image2:=ImageSize(207,99,245,150);
Getmem(p2,Image2);
GetImage(207,99,245,150,p2^);
For y2:=99 downto 1 do
Begin x2:=208;
PutImage(x2,y2,p2^,CopyPut);
Delay(1);
End;
End;
BEGIN
gd:=detect;
initgraph(gd,gm,'');
SetBkColor(3);
Solnce;
Veshalka;
Dom;
Dim;
Zabor;
Derevo;
Luzhaika;
Doroga;
Mashina;
Vodoem;
Dvizhenie;
ReadKey;
CloseGraph;
end.
3. Результат
изображение графический программа память
По траектории движется солнце
Едет машина по дороге
В небо поднимается дым
Размещено на Allbest.ru
Подобные документы
Интерфейс программы Adobe Photoshop. Внесение изменений в изображение. Инструменты изменения оттенка и искажения изображения. Последовательность формирования изображения. Тоновая и цветовая коррекция изображения, работа с фильтрами и функциями.
курсовая работа [2,8 M], добавлен 14.12.2011Разработка программы, предназначенной для сжатия или компрессии полутонового изображения международным стандартом JPEG. Описание метода JPEG, выдача результатов в виде декодированного изображения. Обзор методов компрессии полутонового изображения.
курсовая работа [43,5 K], добавлен 14.10.2012Назначение растрового графического редактора Adobe Photoshop, его особенности и версии. Элементы графического редактора, интерфейс и инструменты программы. Необходимость коррекции изображения. Команды и основные этапы тоновой и цветовой коррекции.
курсовая работа [2,8 M], добавлен 23.08.2013Задача зеркального отражения изображения как одна из подзадач многих программ. Анализ создания программы, выполняющей зеркальное отображение изображения, который хранится в файле формата .pcx (256 цветов). Проектирование пользовательского интерфейса.
курсовая работа [625,6 K], добавлен 17.05.2013Информация о графических форматах. Хранение изображения в программе. Очередь как вспомогательная структура данных. Загрузка изображения из двоичного файла. Операции с изображением. Уменьшение разрешающей способности. Увеличение размера изображения.
курсовая работа [1,1 M], добавлен 29.06.2013Описание этапов создания анимированного GIF изображения мультипликационного героя "Винни-Пуха" в программе Adobe Photoshop CS6. Создание дубликата слоя изображения и подготовка кадров для GIF анимации. Настройка эффектов анимации и результат GIF-файла.
лабораторная работа [1,2 M], добавлен 05.03.2015Анализ необходимости в инструменте, который позволял бы автоматически генерировать изображение без необходимости ручной отрисовки. Основные концепции и операторы языка Postscript. Использование Postscript для генерации изображения циферблата манометра.
отчет по практике [269,3 K], добавлен 16.05.2017Описание предметной области и соотношения между объектами. Этапы проектирования базы данных, ее инфологическая, концептуальная и физическая модели. Использование режима "Конструктор" при создании таблиц, разработка форм, запросов и отчетов в MS Access.
курсовая работа [2,5 M], добавлен 07.11.2012Понятие, основные принципы, этапы и методы векторизации изображения. Автоматическая векторизация CorelDRAW 12. Программное обеспечение AutoCAD Raster Design. Программное обеспечение Easy Trace. Редактирование объекта без потери качества изображения.
курсовая работа [923,4 K], добавлен 08.12.2014Запуск 3ds max, особенности размещения инструментов и работы с ними. Навигация по окнам трехмерных проекций, основные элементы управления объектами. Влияние дизайна элементов графического интерфейса на качество работы. Настройка рабочего пространства.
учебное пособие [3,2 M], добавлен 07.02.2011