Сделай Сам Свою Работу на 5

Рисование простых графических примитивов

Урок 14

Тема: «Графические возможности Pascal».

Графический режим

Всякое графическое изображение представляет собой совокупность точек – пикселей. Каждая из них задается своими координатами и цветом.

Количество отображаемых на экране пикселей называют разрешающей способностью (разрешением) графического экрана.

Рассмотрим программирование графики в стандартном видеорежиме среды программирования Borland Pascal, который поддерживается современными компьютерами: 640 х 480 х 16 (640 точек по горизонтали, 480 точек по вертикали, 16 цветов).

Графический экран как совокупность точек (пикселей) координатной плоскости, изображен на рисунке справа. Каждая точка (позиция) экрана задается номером пикселя по горизонтали и вертикали. Например, пиксель (150, 120) находится в 150-м столбце и 120-й строке. (0,0) 150 (639,0)
Х     Y   Y

 


120

(150,120)

 

(0, 479) (639,479)

 

Для управления графическим экраном предназначен модуль GRAPH. Сам модуль представляет собой отдельный файл Graph.tpu. При программировании он должен быть доступным для компилятора. Также доступным (для запуска программ) должен быть драйвер EGAVGA.bgi.

Для работы с графикой в Паскале в простейшем случае требуется выполнить следующие этапы:

Этапы работы Действия программиста
1. Подготовительная работа (копирование требуемой библиотеки graph.tpu и драйвера egavga.bgi в рабочую папку) Скопировать файлы egavga.bgi (из папки BGI, вложенной в папку BР) и graph.tpu (из папки UNITS) в рабочую папку.
2. Собственно программирование: 1) подключение модуля GRAPH;   2) инициализация графического режима (переход в графический режим): а) в разделе описания переменных описать две целочисленные переменные для указания драйвера и режима работы графического адаптера (например, gd, gr); б) в разделе операторов установить графический режим с помощью процедуры INITGRAPH   указать его имя в разделе описания модулей: USES GRAPH ;     Var gd, gr : integer; {графический драйвер и графический режим} …   Begin gd:=DETECT; INITGRAPH (gd, gr, '');
Общий вид оператора: INITGRAPH (драйвер, режим, путь); Здесь «путь» – это полный путь к папке, в которой хранится нужный графический драйвер. Так как требуемый графический драйвер скопирован в Вашу рабочую папку, которая является текущей, то путь будем представлять, как пустую строку ''. Для задания типа драйвера используйте режим автоопределения DETECT.
в) выполнение графических построений; г) в конце программы выполнить возврат в текстовый режим с помощью процедуры CLOSEGRAPH … Readln ; CloseGraph ; End .  
       

Создание изображений

Задание цвета

Прежде чем приступить к рисованию художник готовит чистый холст и цветные краски. При рисовании на Паскале холст (фон рисунка) можно очистить с помощью процедуры ClearDevice ; При этом холст заполняется фоновым цветом (по умолчанию – черным).

Для выбора цвета фона, на котором Вы будете выполнять рисунок, используйте процедуру SetBkColor: SetBkColor (номер цвета) ;

Эта процедура изменяет цвет фона, не изменяя изображений (в отличие от процедуры ClearDevice, которая стирает все изображения).

Для выбора цвета изображения используйте процедуру SetColor:

SetColor (номер цвета) ;

Цвет выбирайте из таблицы цветов. Можно также использовать соответствующие текстовые константы, например, процедуры SetColor(4); и SetColor(Red); равнозначны.

Рисование простых графических примитивов

Объект Изображение Запись в Паскале
  Точка заданного цвета   X Y   PutPixel (X, Y, цвет) ;
Отрезок прямой с заданными координатами его начала и конца X1 X2
 
 


Y1

 

Y2

  Line (X1, Y1, X2, Y2) ; или Line (X2, Y2, X1, Y1) ;
Прямоугольник с заданными координатами его диагональных точек X1 X2
 
 


Y1

 

Y2

  Rectangle (X1,Y1,X2,Y2);
Закрашенный прямоугольник с заданными координатами его диагональных точек X1 X2
 
 


Y1

 

Y2

  Bar (X1,Y1,X2,Y2);
Окружность заданного радиуса с заданными координатами центра X   Y     Circle (X, Y, R) ;

Примеры. Требуется получить на экране компьютера изображения:

1) прямоугольного треугольника и точки (желтого треугольника на зеленом фоне и желтой точки):   0 160 240 320 400 480 639     Program Triangle; Uses Graph ; Var a, b : Integer ; Begin a:=Detect; InitGraph (a, b, ''); SetBkColor (Green); SetColor (Yellow); Line (240, 70, 240, 270); Line (240, 270, 400, 270); Line (240, 70, 400, 270); PutPixel (400, 70, 14); Readln; CloseGraph End.
2) снежной бабы (белого цвета на синем фоне):   0 320 639
 
 


 

 

 

Program BABA; Uses Graph ; Var a, b : Integer ; Begin a:=Detect; InitGraph (a, b, ''); SetBkColor (Blue); SetColor (15); Circle (320, 60,20); Circle (320, 110,30); Circle (320, 180, 40); Readln; CloseGraph End.
   

 

* 1. При построении линейных изображений, состоящих из последовательно соединенных отрезков, удобно использовать процедуры: MoveTo (X, Y);Перемещение текущего указателя в точку с координатами (X,Y) MoveRel (dX,dY);Перемещение указателя от точки (X, Y) до точки (X+dX, Y+dY) LineTo (X,Y);Построение отрезка от текущей точки в точку (X,Y) LineRel (dX, dY);Построение отрезка от текущей точки (X, Y) до точки (X+dX,Y+dY) Положение текущей точки зависит от графического оператора, который был выполнен последним: например, после оператора Line (0, 0, 70, 50); текущей становится точка (70, 50); после оператора PutPixel (30, 90); – точка (30, 90).
Пример 4. Получить изображение прямоугольной трапеции:   0 240 350 450 639   Program TRAPECIA_1; Uses Graph ; Var a, b : Integer ; Begin a:=Detect; InitGraph (a, b, ''); MoveTo (240,60); LineTo (240,200); {вниз} LineTo (450,200); {вправо} LineTo (350,60); {влево вверх} LineTo (240,60); {влево} Readln; CloseGraph End.
 


©2015- 2017 stydopedia.ru Все материалы защищены законодательством РФ.