GeoSELECT.ru



Компьютеры / Реферат: Графика в Турбо Паскале (Компьютеры)

Космонавтика
Уфология
Авиация
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Аудит
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника
Бухгалтерский учет
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Инвестиции
Иностранные языки
Информатика
Искусство и культура
Исторические личности
История
Кибернетика
Коммуникации и связь
Компьютеры
Косметология
Криминалистика
Криминология
Криптология
Кулинария
Культурология
Литература
Литература : зарубежная
Литература : русская
Логика
Логистика
Маркетинг
Масс-медиа и реклама
Математика
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Мифология
Москвоведение
Музыка
Муниципальное право
Налоги
Начертательная геометрия
Оккультизм
Педагогика
Полиграфия
Политология
Право
Предпринимательство
Программирование
Психология
Радиоэлектроника
Религия
Риторика
Сельское хозяйство
Социология
Спорт
Статистика
Страхование
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Физика
Физкультура
Философия
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
   

Реферат: Графика в Турбо Паскале (Компьютеры)


МИНЕСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ОРЛОВСКИИ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ФИЛИАЛ В г. БРАТСКЕ



Компьютерная графика



ГРАФИКА В 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 символов по вертикали, то есть
всего 2000 визуальных объектов. При этом имеются ограниченные возможности
по управлению цветом символов. Конечно, в таком режиме можно выводить на
экран не только обычный текст, но и некие графические изображения, однако
понятно, что качество таких изображений будет вне всякой критики. Тем не
менее, в «героическую» эпоху компьютерной эры этот метод был единственным и
поэтому очень популярным способом вывода графиков и целых картин на экран
(и на принтер). Программистам иногда удавалось создавать настоящие шедевры
«компьютерной псевдографики». Но для серьезной работы с изображениями
текстовый режим дисплея абсолютно не подходит.
В графическом режиме минимальным объектом, выводом которого может
управлять программист, является так называемый пиксел (от английского
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;
Var i, a, y, x: integer;

procedure init;
var 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(555,0,1);
Line(800,0,0,1700);
SetFillStyle(9,10);
FloodFill(555,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,333,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,333,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(30000);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,0);
FloodFill(562,125,1);
Delay(30000);
SetFillStyle(1,14);
FloodFill(562,125,1);
Delay(30000);


repeat until keypressed;
closegraph;

end;
end.



ЗАКЛЮЧЕНИЕ


В данной курсовой работе описываются различные процедуры и функции,
предназначенные для создания графических объектов в Турбо Паскале.
Используя выше перечисленные процедуры и функции, автор научился
изображать различные фигуры различных форм и размеров, так же смог показать
движение фигуры.
Написав данную программу, автор получил навык работы в графической среде
Турбо Паскаль, научился правильно применять разные процедуры и функции,
точно определять и задавать координаты различных линий, эллипсов,
окружностей, прямоугольников и т.д.



СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ


1. Информатика(Базовый курс) С. В. Симонович, СПб: Питер, 2001г.
2. Основы языка Turbo Pascal(учебный курс), П. И. Рудаков, М. А.
Федотов, Москва: Радио и Связь, 2000г.
3. Основы программирования в задачах и примерах, А. В. Милов, Харьков:
ФОЛИО, 2002г.
4. Программирование. С. Симонович, Г. Евсеев, Москва: АСТ – ПРЕСС книга
2000г.
5. Практика программирования, Ю. Кетков, А. Кетков, СПб: БХБ/ Петербург,
2002г.
6. Turbo Pascal/ С. А. Немнюгин.- СПб: Издательство «Питер», 2001.-496
с.:ил.
7. Turbo Pascal: учитесь программировать, О. А. Меженный, Москва:
изд.дом «Вильямс», 2001г







Реферат на тему: Графика на ПК
Графика на ПК


1) Растровая и векторная графика.
2) Графические редакторы.
3) Форматы файлов для хранения растровых графических изображений.
Все создаваемые с помощью компьютера изображения можно разделить на две
большие части – растровую и векторную графику. Растровые изображения
представляют собой однослойную сетку точек, называемых пикселами, каждая из
которых может иметь определенный цвет. Диапазон доступных цветов
определяется текущей палитрой. Так например для черно-белого изображения в
палитре два цвета - черный и белый, для цветных изображений палитра может
состоять из 16, 256, 65536, 16777216 т.е. 21,24,28,216,224 а также 232.
В противоположность этому векторное изображение многослойно. Каждый элемент
этого изображения - линия, прямоугольник, окружность или фрагмент текста -
располагается в своем собственном слое, пикселы которого устанавливаются
совершенно независимо от других слоёв. Каждый элемент векторного
изображения является объектом, который описывается с помощью специального
языка (мат. уравнения линий, дуг, окружности и т.д.). Кроме того, сложные
объекты (ломанные линии, различные геометрические фигуры) описываются как
совокупность элементарных графических объектов (линий, дуг и т.д.).
Такое векторное изображение представляет собой совокупность слоев
содержащих различные графические объекты. Слои накладываясь друг на друга
формируют цельное изображение.
Объекты векторного изображения, могут произвольно без потери качества
изменять свои размеры.
При изменении размеров объектов растрового изображения происходит потеря
качества. Например при увеличении растрового изображения увеличивается
зернистость.
5) Графические редакторы.
В настоящее время имеется множество программ для редактирования графических
изображений. Эти программы в соответствии с делением графики на растровую и
векторную можно условно разделить на два класса:
6) Программ для работы с растровой графикой.
7) Программ для работы с векторной графикой.
Также имеются программы, которые совмещают возможности программ этих двух
классов. Т.е. позволяют создавать изображения состоящие из растровой и
векторной графики.
Среди программ первого класса отметим :
8) Графический редактор Paint — простой однооконный графический редактор,
который позволяет создавать и редактировать достаточно сложные рисунки.
9) Photoshop фирмы Adobe многооконный графический редактор позволяет
создавать и редактировать сложные рисунки, а также обрабатывать
графические изображения (фотографии). Содержит множество фильтров для
обработки фотографий (изменение яркости, контрастности и т.д.).
Среди программ второго класса отметим:
1) Программа Microsoft Draw — входящая в комплект MS Office. Эта программа
служит для создания различных рисунков, схем. Обычно вызывается из MS
Word.
2) Adobe Illustrator, Corel Draw — программы используются в издательском
деле, позволяет создавать сложные векторные изображения.
Как правило программы первого класса позволяют сохранять изображения в
файлах стандартных форматов: bmp, pcx, gif, tif, а программы второго класса
используют для этих целей свои форматы.
Форматы файлов для хранения растровых графических изображений.
Как правило файлы для хранения растровых графических изображений логически
состоят из двух частей: заголовка и области данных. В заголовке указаны
данные о формате файла, изображения по горизонтали, по вертикали:
количество цветов, палитра и т.д. В области данных закладываются цвета
пикселов.
В настоящее время наиболее распространенные следующие форматы файлов.
1. bmp (bit map) — битовая карта. Формат распространен в Windows (Paint).
В этом формате файл состоит из двух частей.
1- заголовок в котором указывается разрешение изображения и
количество бит которыми кодируется цвет пиксела.
2- область данных (битовая карта) в которой хранятся в виде
последовательности бит цвета пикселов изображений.
2. pcx. Формат pcx использует простейший способ сжатия изображений,
позволяющий выполнять быструю перезапись изображения из файла в
видеопамять и обратно. Данный формат использует в своей работе многие
графические редакторы, в частности Paint. Вместе с форматом tif формат
pcx является одним из наиболее распространённых форматов, которые
используют сканеры.
В заголовке файлов этого формата указывается информация о версии формата
pcx, информация о том — используется сжатие информации или нет,
информация о цветах изображения, размерах изображения, разрешения
сканера, разрешение дисплея.
Для сжатия в файле изображения формата Pcx используется метод группового
кодирования, в котором группа повторяющихся байт заменяется двумя
байтовыми: байтом повторителем и повторяющимся байтом.
Байт повторитель имеет уникальный код и содержит в себе число
повторяющихся байт.
3. Формат GIF, при достаточно простой структуре файла и наличии
наибольшего числа атрибутов изображения используют более эффективный
чем в pcx алгоритм сжатия. Этот формат в настоящее время используется
при размещении графической информации в гипертекстовых документах
Internet.]
4. TIF (Tiff - Tag Image File Format). Основной областью применения
данного формата является настольная издательская деятельность и
связанные с ней приложения. Этот формат имеет множество атрибутов,
позволяющих точно описать сложение изображения. Часто этот формат
используется, для хранения отсканированных изображений.
Форматы GIF и TIF в основном используют lzw сжатие. Название этого
алгоритма произошло от фамилии его разработчиков Lampel, Ziv и Welch.
5. jpg - формат, который использует специальный алгоритм сжатия
изображения, позволяющее сжать изображение до требуемого размера и
качества. При этом качество изображения теряется. Формат распространен
для размещения графической информации в гипертекстовых документах
Internet.




Новинки рефератов ::

Реферат: Физкультура при близорукости (Спорт)


Реферат: Перспективы цифрового видео (Компьютеры)


Реферат: Возникновение науки "кибернетика" как способа хранения и переработки информации для принятия правильных управленческих решений (Программирование)


Реферат: Пятый постулат (Литература)


Реферат: Облік нематеріальних активів (Бухгалтерский учет)


Реферат: Слово как опорный образ поэтики Иосифа Бродского (Литература)


Реферат: Будущее предпринимательства в России (Предпринимательство)


Реферат: Контракт emptio-venditio (Гражданское право и процесс)


Реферат: Реформы Александра Первого (Теория государства и права)


Реферат: Истоки и ценности индустриальной цивилизации (История)


Реферат: Гражданско-правовое регулирование договора строительного подряда (Гражданское право и процесс)


Реферат: НБУ-финансовый агент правительства (Право)


Реферат: Непрерывная ректификация (Технология)


Реферат: Проблемы социализации подростков (Социология)


Реферат: Лекарственные растения (Биология)


Реферат: Развитие теории урока в советской дидактике периода середины 50-х - середины 60-х годов (Педагогика)


Реферат: Характер экзистенциализма в романе А.Камю "Чума" (Литература : зарубежная)


Реферат: Древний Египет. В тени пирамид. (Культурология)


Реферат: Лабораторная установка для испытания моделей корпусов жидкостных ракет (Технология)


Реферат: Лабораторные работы (в ХГТУ) (Программирование)



Copyright © GeoRUS, Геологические сайты альтруист