RSS    

   Реферат: Графика в Турбо Паскале

Реферат: Графика в Турбо Паскале

МИНЕСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

ОРЛОВСКИИ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ФИЛИАЛ В г. БРАТСКЕ

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

ГРАФИКА В 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, 2, 3


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.