Изображение с движущимися объектами

Особенности и основные этапы создания изображения с тремя движущимися объектами при помощи графического режима 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.