Читайте данную работу прямо на сайте или скачайте
Графика в Турбо Паскале
МИНЕСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ОРЛОВСКИИ ГОСУДАРСТВЕННЫЙ НИВЕРСИТЕТ
ФИЛИАЛ В г. БРАТСКЕ
Компьютерная графика
ГРАФИКА В TURBO PASCAL
Курсовая работа
Выполнил:
Студент гр.ПИ(Э)-02-Дн Л. С. Пивинская 02850
Проверил:
Старший преподаватель И. В. Маслов
Братск 2003
СОДЕРЖАНИЕ
ВВЕДЕНЕа .................................... . 3
1. ФУНКЦИИ И ПРОЦЕДУРЫ.........................4
1.1. Модуль Graph....... .......................... 4
1.2. Сохранение и выдача изображенийа.............. ... 4
1.3. Координаты, окна, страницы...................... 5
1.4. Линии и точки....................... ......... 6
1.5. Многоугольники ............................... 6
1.6. Дуги, окружности, эллипсы............. .......... 7
1.7. Краски, палитры, заполнения......................8
2. ЛИСТИНГ ПРОГРАММЫ.......................... 9
ЗАКЛЮЧЕНИЕ а....................... ........... 20
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ........... 21
ВВЕДЕНИЕ
В данной курсовой работе рассматриваются различные функции и процедуры предназначенные для изображения графических объектов в графическом режиме Турбо Паскаля.
Различие между текстовым и графическим режимами работы монитора заключается в возможностях правления выводом визуальной информации. В текстовом режиме минимальным объектом, отображаемым на экране, является символ, алфавитно-цифровой или какой-либо иной. В обычных словиях экран монитора, работающего в режиме алфавитно-цифрового дисплея, может содержать не более 80 символов по горизонтали и 25 символов по вертикали, то есть всего 2 визуальных объектов. При этом имеются ограниченные возможности по правлению цветом символов. Конечно, в таком режиме можно выводить на экран не только обычный текст, но и некие графические изображения, однако понятно, что качество таких изображений будет вне всякой критики. Тем не менее, в лгероическую эпоху компьютерной эры этот метод был единственным и поэтому очень популярным способом вывода графиков и целых картин на экран (и на принтер). Программистам иногда давалось создавать настоящие шедевры компьютерной псевдографики. Но для серьезной работы с изображениями текстовый режим дисплея абсолютно не подходит.
В графическом режиме минимальным объектом, выводом которого может правлять программист, является так называемый пиксел (от английского Pixel, возникшего в результате объединения слов лрисунок (picture) и лэлемент (element)). Пиксел имеет меньшие размеры по сравнению с символом (на один символ в текстовом режиме отводится площадка размером в несколько пикселов). Его геометрические размеры определяются разрешением монитора. Разрешение монитора обычно задается в виде rx * ry, где rx Ч количество пикселов на экране по горизонтали, ry - количество пикселов по вертикали. На практике используются не произвольные, некоторые определенные значения разрешения. Такими разрешениями являются, Например, 320х200, 640х480, 800х600, 1024х768, 1280х1024 и т.д.
1. ФУНКЦИИ И ПРОЦЕДУРЫ
1.1. Модуль Graph
Модуль Graph Турбо Паскаля содержит около пятидесяти различных процедур и функции, предназначенных для работы с графическим экраном. В этом же модуле некоторые встроенные константы, которые могут быть использованы в графических программах. Для того чтобы воспользоваться всеми возможностями модуля Graph, в начале программы( после заголовка)необходимо поместить оператор использования
Uses Graph;
Основную часть модуля составляют процедуры ввода базовых графических элементов, таких как точки, отрезки прямых линий, дуги
и целые окружности и др.
Функция GraphErrorMsg. Возвращает значение типа String, в котором по указанному коду ошибки дается соответствующее текстовое сообщение. Заголовок:
Fanctional GraphErrorMsg(Code: Integer): String;
Здесь Code - код ошибки, возвращаемый функцией GraphResult.
Функция CloseGraph. Завершает работу адаптера в графическом режиме и восстанавливает текстовый режим работы экрана.
а1.2. Координаты, окна, страницы
Любое изображение формируется из достаточно простых геометрических фигур. Это точки, отрезки прямых, окружности и т.д. Из геометрии известно, что положение геометрического объекта и его форма задаются координатами его точек.
Следовательно, для того чтобы запрограммировать графический вывод, надо научиться задавать координаты графических объектов.
Многие графические процедуры и функции используют казатель текущей позиции на экране, который в отличие от текстового курсора невидим. Положение этого казателя, как и вообще любая координата на графическом экране, задается относительно левого верхнего гла, который, в свою очередь, имеет координаты 0,0. Таким образом, горизонтальная координата экрана увеличивается слева направо, вертикальная - сверху вниз.
Функции GetMaxX и GetMaxY.
Возвращают значения типа Word, содержащие максимальные координаты экрана в текущем режиме работы соответственно по горизонтали и вертикали.
Процедура SetViewPort. Устанавливает прямоугольное окно на графическом экране. Заголовок:
Procedure SetVievPort(X1, Y1, X2, Y2: Integer; ClipOn: Boolean);
Здесь X1..Y2 - координаты левого верхнего(Х1,Y1) и правого нижнего(X2,Y2) глов окна; ClipOn - выражение типа Boolean, определяющее лотсечку не мещающихся в окне элементов изображения.
Процедура ClearDevice. Очищает графический экран. После обращения к процедуре казатель устанавливается в левый верхний гол, сам экран заполняется цветом фона, заданным процедурой SetBkColor.
1.3 Линии и точки
Процедура PutPixel. Выводит заданным цветом точку по казанным координатам. Заголовок:
Procedure PutPixel(X, Y: Inteder; Color: word);
Здесь X, Y - координаты точки; Color - цвет точки.
Процедура Line. Вычерчивает линию с казанными координатами начала и конца. Заголовок:
Procedure Line(X1, Y1, X2, Y2: Integer);
Здесь X1..Y1 - координаты начала(X1,Y1) и конца(X2,Y2) линии. Линия вычерчивается текущем стилем и текущим цветом.
Процедура SetLineStyle. Устанавливает новый стиль вычерчиваемых линий. Заголовок:
Procedure SetLineStyle(Type, Pattern, Thick: Word);
Здесь Type, Pattern, Thick - соответственно тип, образец и толщина линии. Тип линии может быть создан с помощью одной из следующих констант:
Const
SolidLn= 0; (Сплошная линия)
DottedLn= 1; (Точечная линия)
CenterLn= 2; (Штрих-пунктирная линия)
DashedLn= 3; (Пунктирная линия)
UserBitLn= 4; (Узор линии определяемый пользователем)
1.4. Многоугольники
Процедура Rectangle. Вычерчивает прямоугольник с казанными координатами глов. Заголовок:
Procedure Rectangle(X1, Y1, X2, Y2: Integer);
Здесь X1..Y2 - координаты левого верхнего угла(X1,Y1) и правого нижнего(X2,Y2) глов прямоугольника. Прямоугольник вычерчивается с использованием текущего цвета и текущего стиля линий.
1.5. Дуги, окружности, эллипсы
Процедура Circle. Вычерчивает окружность. Заголовок:
Procedure Circle(X, Y: Integer; R: Word);
Здесь X,Y - координаты центра; R - радиус в пикселях.
Окружность выводится текущим цветом. Толщина линии станавливается текущим стилем, вид линии всегда SolidLn(Сплошная). Процедура вычерчивает правильную окружность с четом изменения линейного размера радиуса в зависимости от его направления относительно сторон графического экрана, т.е. с четом коэффициента GetAspectRatio. В связи с этим параметр R определяет количество пикселей в горизонтальном направлении.
Процедура Arc. Чертит дугу окружности. Заголовок:
Procedure Arc(X, Y: Integer; BegA, EndA, R: Word);
Здесь X, Y - координаты центра; BegA, EndA Цсоответственно начальный и конечный глы дуги; R - радиус.
глы описываются против часовой стрелки и указываются в градусах. Нулевой гол соответствует горизонтальному направлению вектора слева направо. Если задать значения начального гла 0 и конечного Ц 359, то будет выведена полная окружность. При вычерчивании дуги окружности используется те же соглашения относительно линии радиуса, что и в процедуре Circle.
Процедура Ellipse. Вычерчивает эллипсную дугу. Заголовок:
Procedure Ellipse(X, Y: Integer; BegA, EndA, Rx, RY: Word);
Здесь X,Y - координаты центра; BegA, EndA - соответственно начальный и конечный глы дуги; RX, RY - горизонтальный и вертикальный радиусы эллипса в пикселях.
При вычерчивании дуги эллипса используется те же соглашения относительно линии, что и в процедуре Circle, ите же соглашения относительно глов, что и в процедуре Arc. Если радиусы согласовать с четом масштабного коэффициента GetAspectRatio, будут вычерчена правильная окружность.
1.6 Краски, палитры, заполнения
Процедура SetCOlor. Устанавливает текущий цвет для вводимых линий и символов. Заголовок:
Procedure SetColor(Color: Word);
Здесь Color - текущий цвет.
Процедура SetBkColor. Устанавливает цвет фона. Заголовок:
Procedure SetBkColor (Color: Word);
Здесь Color - цвет фона.
В отличие от текстового режима, в котором цвет фона может быть только темного оттенка, в графическом режиме он может быть любым. становка нового цвета фона, немедленно изменяет цвет графического экрана. Это означает, что нельзя создать изображение, два частка которого имели бы разный цвет фона. Для GGA-адаптера в режиме высокого разрешения установка цвета фона изменяет цвет активных пикселей. Замечу, что после замены цвета фона на любой, отличный от 0 (Black) цвет. Вы не сможете более использовать цвет 0 как черный, он будет заменяться на цвет фона, т.к. процедуры модуля Graph интерпретируют цвет с номером 0 как цвет фона. Это означает, в частности, что Вы же не сможете вернуть фону черный цвет!
Если Ваш ПК оснащен цветным экраном, следующая программа продемонстрирует работу процедуры SetBkColor. Программа выводит десять вложенных друг в друга прямоугольников, после чего циклически меняет цвет фона. Для выхода из программы достаточно нажать на любую клавишу.
Процедура SetFillStyle. Устанавливает стиль (тип и цвет). Заголовок:
Procedure SetFillStile(Fill, Color: Word);
Здесь Fill - тип заполнения; Color - цвет заполнения.
С помощью заполнения можно покрывать какие-либо фрагменты изображения периодически повторяющимся зором.
Процедура FloodFill. Заполняет произвольную замкнутую фигуру, используя текущий стиль заполнения(узор и цвет). Заголовок:
Procedure FloodFill(X, Y: Integer; Border: Word);
Здесь X, Y - координаты любой точки внутри замкнутой фигуры; Border - цвет граничной линии. Если фигура не замкнута, заполнение лразольется по всему экрану.
1.7. Сохранение и выдача изображений
Функция ImageSize. Возвращает размер памяти в байтах, необходимый для размещения прямоугольного фрагмента изображения. Заголовок:
Function ImageSize(X1, Y2, X2, Y2: Integer): Word;
Здесь X1..Y2 - координаты левого верхнего(X1,Y1) и правого нижнего(X2,Y2) глов фрагмента изображения.
Процедура GetImage. Помещает в память копию прямоугольного фрагмента изображения. Заголовок:а
Procedure GetImage(X1, Y1, X2, Y2: Integer; var Buf);
Здесь X1..Y2 - координаты глов фрагмента изображения; Buf - переменная или часток кучи, куда будут помещена копия видеопамяти с фрагментом изображения.
Размер Buf должен быть не меньше значения, возвращаемого функцией ImageSize с теме же координатами X1..Y2.
Процедура PutImage. Выводит в заданное место экрана копию фрагмента изображения, ранее помещенную в память процедурой GetImage. Заголовок:
Procedure PutImage(X, Y: Integer; var Buf; Mode: Word);
Здесь X, Y Цкоординаты левого верхнего гла того места на экране, куда будет скопирован фрагмент изображения; Buf - переменная или часток кучи, откуда берется изображение; Mode Ц способ копирования.
Как видим, координаты правого нижнего гла не казываются, так как они полностью определяются размерами вновь выводимой на экран копии изображения. Координаты левого верхнего гла могут быть какими угодно, лишь бы только выводимая копия местилась в пределах экрана(если копия не сможет разместиться на экране, она не выводится и экран остается без изменений).
Параметр Mode определяет способ взаимодействия вновь размещаемой копии же имеющимся на экране изображением. Взаимодействие осуществляется путем применения кодируемых этим параметром логических операций к каждому биту копии и изображения.
2. ЛИСТИНГ ПРОГРАММЫ
Program Brodvey;
Uses Graph,Crt;
ar аi, a, y, x: integer;
procedure init;
ar gD, gM, EC:integer;
begin gD:=detect;
InitGraph(gD, gM, '');
end;
begin init;
SetColor(1);
Line(520,0,0,192);
Line(530,0,0,210);
SetFillStyle(1,8);
FloodFill(525,0,1);
Line(550,0,0,450);
Line(565,0,0,600);
SetFillStyle(1,0);
FloodFill(540,0,1);
SetFillStyle(1,10);
FloodFill(,0,1);
Line(800,0,0,1700);
SetFillStyle(9,10);
FloodFill(,0,1);
SetFillStyle(1,8);
FloodFill(570,0,1);
SetFillStyle(9,2);
FloodFill(630,400,1);
Line(0,100,90,100);
LIne(90,100,90,158);
SetFillStyle(1,4);
FloodFill(2,120,1);
Line(5,105,20,105);
Line(5,105,5,115);
Line(20,105,20,115);
Line(5,115,20,115);
SetFillStyle(1,14);
FloodFill(7,110,1);
Line(40,105,55,105);
Line(40,105,40,115);
Line(55,105,55,115);
Line(40,115,55,115);
SetFillStyle(1,14);
FloodFill(45,110,1);
Line(70,105,85,105);
Line(70,105,70,115);
Line(85,105,85,115);
Line(70,115,85,115);
SetfillStyle(1,14);
FloodFill(80,110,1);
Line(5,130,20,130);
Line(5,130,5,140);
Line(20,130,20,140);
Line(5,140,20,140);
SetFillStyle(1,14);
FloodFill(7,135,1);
Line(40,130,55,130);
Line(40,130,40,140);
Line(55,130,55,140);
Line(40,140,55,140);
SetFillStyle(1,14);
FloodFill(45,135,1);
Line(70,130,85,130);
Line(70,130,70,140);
Line(85,130,85,140);
Line(70,140,85,140);
SetFillStyle(1,14);
FloodFill(75,135,1);
Line(0,60,40,60);
Line(40,60,40,100);
SetFillStyle(1,5);
FloodFill(5,65,1);
Line(5,70,15,70);
Line(5,70,5,80);
line(15,70,15,80);
Line(5,80,15,80);
SetfillStyle(1,14);
FloodFill(10,75,1);
Line(25,70,35,70);
Line(35,70,35,80);
Line(25,70,25,80);
Line(25,80,35,80);
SetFillStyle(1,14);
FloodFill(30,75,1);
Line(0,15,55,15);
Line(55,15,55,100);
SetFillStyle(1,6);
FloodFill(10,20,1);
Line(5,40,15,40);
Line(5,40,5,55);
Line(15,40,15,55);
Line(5,55,15,55);
SetFillStyle(1,14);
FloodFill(10,45,1);
Line(25,40,35,40);
Line(25,40,25,55);
Line(35,40,35,55);
Line(25,55,35,55);
SetFillStyle(9,8);
FloodFill(30,45,1);
Line(45,40,55,40);
Line(45,40,45,55);
Line(55,40,55,55);
Line(45,55,55,55);
SetFillStyle(1,14);
FloodFill(50,45,1);
Line(60,45,70,45);
Line(60,45,60,60);
Line(70,45,70,60);
Line(60,60,70,60);
Setfillstyle(1,14);
Floodfill(65,50,1);
Line(90,45,100,45);
Line(90,45,90,60);
Line(100,45,100,60);
Line(90,60,100,60);
SetFillstyle(1,14);
FloodFill(95,50,1);
Line(90,80,90,90);
Line(90,90,105,90);
Line(105,80,105,90);
Line(90,80,105,80);
SetFillStyle(1,14);
FloodFill(95,85,1);
line(70,80,70,90);
line(70,80,55,80);
Line(55,80,55,90);
Line(55,90,70,90);
SetFillStyle(9,8);
FloodFill(59,85,1);
Line(120,90,120,110);
Line(120,110,135,110);
Line(135,110,135,90);
Line(120,90,135,90);
SetFillStyle(1,14);
FloodFill(125,95,1);
Rectangle(155,90,170,110);
SetFillStyle(1,14);
FloodFill(165,95,1);
Rectangle(190,60,200,70);
SetFillStyle(1,14);
FloodFill(195,65,1);
Rectangle(210,60,220,70);
SetFillStyle(1,14);
FloodFill(215,65,1);
Rectangle (230,60,240,70);
SetFillStyle(1,14);
FloodFill(235,65,1);
Rectangle(190,80,200,90);
SetFillStyle(1,14);
FloodFill(195,85,1);
Rectangle(210,80,220,90);
SetFillStyle(1,14);
FloodFill(215,85,1);
Rectangle(230,80,240,90);
SetFillStyle(1,14);
FloodFill(235,85,1);
Rectangle(205,30,230,35);
SetFillStyle(1,14);
FloodFill(210,32,1);
Rectangle(240,30,255,35);
SetFillStyle(9,8);
FloodFill(245,32,1);
Rectangle(265,30,290,35);
SetFillStyle(1,14);
FloodFill(270,32,1);
Rectangle(300,30,325,35);
SetFillStyle(1,14);
FloodFill(310,32,1);
Rectangle(265,40,290,45);
SetFillStyle(1,14);
FloodFill(270,42,1);
Rectangle(300,40,325,45);
SetFillStyle(9,8);
FloodFill(310,42,1);
Rectangle(265,50,290,55);
SetFillStyle(1,14);
FloodFill(270,52,1);
Rectangle(300,50,325,55);
SetFillStyle(1,14);
FloodFill(310,52,1);
Rectangle(300,60,325,65);
SetFillStyle(1,14);
FloodFill(310,62,1);
Rectangle(265,60,290,65);
SetFillStyle(1,14);
FloodFill(270,62,1);
Rectangle(360,50,365,55);
SetFillStyle(9,8);
FloodFill(362,52,1);
Rectangle(360,40,365,45);
SetFillStyle(1,14);
FloodFill(362,42,1);
Rectangle(370,45,375,40);
SetFillStyle(1,14);
FloodFill(372,42,1);
Rectangle(360,30,365,35);
SetFillStyle(1,14);
FloodFill(362,31,1);
Rectangle(370,30,375,35);
SetFillStyle(1,14);
FloodFill(372,32,1);
Rectangle(390,25,395,30);
SetFillStyle(9,8);
FloodFill(392,28,1);
Rectangle(390,15,395,20);
SetFillStyle(1,14);
FloodFill(392,17,1);
Rectangle(375,15,380,20);
SetFillStyle(1,14);
FloodFill(378,17,1);
Rectangle(405,30,410,35);
SetFillStyle(1,14);
FloodFill(407,32,1);
Rectangle(415,30,420,35);
SetFillStyle(1,14);
FloodFill(418,32,1);
Rectangle(405,20,410,25);
SetFillStyle(9,8);
FloodFill(408,22,1);
Rectangle(415,20,420,25);
SetFillStyle(1,14);
FloodFill(418,22,1);
Rectangle(435,10,450,15);
SetFillStyle(1,14);
FloodFill(445,12,1);
Rectangle(435,20,450,25);
SetFillStyle(1,14);
FloodFill(440,22,1);
Line(55,30,110,30);
Line(110,30,110,150);
SetFillStyle(1,9);
FloodFill(60,35,1);
Line(75,10,125,10);
Line(125,10,125,72);
Line(75,10,75,32);
SetFillStyle(1,11);
FloodFill(110,25,1);
Line(110,70,180,70);
Line(180,70,180,125);
SetFillStyle(1,13);
FloodFill(125,85,1);
Line(180,55,250,55);
Line(180,55,180,70);
Line(250,55,250,100);
SetFillStyle(1,6);
FloodFill(185,65,1);
Line(165,70,165,15);
line(165,15,350,15);
Line(350,15,350,62);
SetFillStyle(1,12);
FloodFill(205,65,1);
Line(300,10,300,15);
Line(300,10,335,10);
Line(335,10,335,15);
SetFillStyle(1,10);
FloodFill(325,12,1);
Line(350,25,380,25);
Line(380,25,380,52);
SetFillStyle(1,4);
FloodFill(370,26,1);
Line(370,10,370,25);
Line(370,10,400,10);
Line(400,10,400,45);
SetFillStyle(1,15);
FloodFill(386,29,1);
Line(400,15,430,15);
Line(430,15,430,34);
SetFillStyle(1,9);
FloodFill(425,25,1);
Line(415,15,415,5);
Line(415,5,470,5);
Line(470,5,470,19);
SetFillStyle(1,6);
FloodFill(425,8,1);
Line(470,2,485,2);
Line(470,2,470,5);
Line(485,2,485,12);
SetFillStyle(1,10);
FloodFill(478,4,1);
Line(290,360,290,210);
Line(290,212,410,120);
Line(290,300,410,170);
Line(410,120,410,170);
SetFillstyle(1,3);
FloodFill(300,250,1);
SetfillStyle(1,3);
FloodFill(291,298,1);
Line(400,300,440,170);
Ellipse(425,194,55,120,27,28);
Ellipse(345,376,53,125,95,95);
Line(400,300,400,360);
Ellipse(345,375,12,158,58,58 );
SetFillStyle(1,9);
FloodFill(295,310,1);
Line(440,170,440,200);
Ellipse(430,210,36,87,15,15);
SetFillStyle(1,9);
FloodFill(438,180,1);
SetFillStyle(1,3);
FloodFill(420,180,1);
Line(0,290,60,260);
Line(100,240,150,215);
Line(200,190,260,160);
Line(290,148,,128);
Line(370,100,400,85);
Line(420,73,440,63);
Line(470,45,490,35);
SetFillStyle(10,15);
FloodFill(400,2,1);
Line(280,112,330,90);
Ellipse(335,110,350,100,20,20);
ellipse(294,150,110,150,40,40);
line(355,115,350,120);
circle(342,125,10);
SetFillStyle(9,8);
FloodFill(342,125,1);
Line(260,130,240,140);
Line(260,130,280,130);
Line(280,130,335,105);
Line(280,130,285,120);
Line(285,120,266,120);
Line(285,120,,98);
Arc(332,102,270,90,4);
Line(240,150,270,150);
Line(240,140,270,140);
Line(270,140,353,102);
SetFillStyle(1,5);
FloodFill(338,102,1);
Ellipse(248,152,165,23,8,8);
SetFillStyle(9,8);
FloodFill(248,154,1);
Circle(280,152,10);
SetFillStyle(9,8);
FloodFill(280,152,1);
arc(240,145,90,270,5);
SetFillStyle(1,7);
FloodFill(240,145,1);
SetColor(6);
Line(435,230,370,240);
Line(440,215,390,230);
Line(435,230,435,300);
Line(425,240,370,260);
Line(425,240,425,300);
Line(425,300,435,300);
Line(435,295,440,295);
Line(440,215,440,295);
Line(391,230,351,185);а
Line(328,200,355,185);
Ellipse(365,210,160,290,33,50);
Line(340,185,340,193);
Circle(340,178,10);
SetFillStyle(1,6);
FloodFill(340,178,6);
Line(352,188,390,135);
Line(355,190,390,140);
Line(390,140,390,135);
Line(335,200,288,210);
Line(335,205,288,215);
SetFillStyle(8,1);
FloodFill(353,189,6);
SetFillStyle(1,1);
FloodFill(380,152,6);
Line(288,210,280,178);
Line(288,215,275,185);
Line(275,185,280,178);
SetFillStyle(1,1);
FloodFill(277,185,6);
SetColor(0);
Ellipse(395,200,0,360,5,3);
Line(390,200,390,210);
Line(400,200,400,210);
SetFillStyle(9,6);
FloodFill(395,200,0);
Arc(395,208,150,0,5);
SetFillStyle(1,7);
FloodFill(395,208,0);
SetColor(1);
Line(500,100,500,400);
Line(520,100,520,400);
Ellipse(510,100,0,200,10,10);
Ellipse(510,396,200,0,10,10);
SetFillStyle(1,6);
FloodFill(513,105,1);
Ellipse(485,130,10,160,25,25);
Ellipse(535,115,19,160,25,25);
Ellipse(460,138,10,170,16,16);
Ellipse(460,138,160,8,15,8);
SetFillstyle(1,14);
FloodFill(463,140,1);
begin
Ellipse(560,122,10,170,16,16);
Ellipse(560,122,160,8,15,8);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(3);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(3);
repeat until keypressed;
closegraph;
end;
end.
ЗАКЛЮЧЕНИЕ
В данной курсовой работе описываются различные процедуры и функции, предназначенные для создания графических объектов в Турбо Паскале.
Используя авыше перечисленные процедуры и функции, автор научился изображать различные фигуры различных форм и размеров, так же смог показать движение фигуры.
Написав данную программу, автор получил навык работы в графической среде Турбо Паскаль, научился правильно применять разные процедуры и функции, точно определять и задавать координаты различных линий, эллипсов, окружностей, прямоугольников и т.д. а
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
а1. Информатика(Базовый курс) С. В. Симонович, Пб: Питер, 2001г.
2. Основы языка Turbo Pascal(учебный курс), П. И. Рудаков, М. А. Федотов, Москва: Радио и Связь, 2г.
3. Основы программирования в задачах и примерах, А. В. Милов, Харьков: ФОЛИО, 2002г.
4. Программирование. С. Симонович, Г. Евсеев, Москва: АСТ - ПРЕСС книга 2г.
5. Практика программирования, Ю. Кетков, А. Кетков, Пб: БХБ/ Петербург, 2002г.
6. Turbo Pascal/ С. А. Немнюгин.- Пб: Издательство Питер, 2001.-496 с.:ил.
7. Turbo Pascal: читесь программировать, О. А. Меженный, Москва: изд.дом Вильямс, 2001г