3779 КОМПЬЮТЕРНАЯ ГЕОМЕТРИЯ И ГРАФИКА

Компьютерная графика – сравнительно новая отрасль информатики, наследница машинной графики. Это наука о математическом моделировании геометрических форм и облика объектов, а также о методах их визуализации. С появлением персонального компьютера машинная графика стала инструментом не только инженеров-исследователей, но и специалистов других отраслей, непосредственно не связанных ни с техникой, ни с программированием.

Настоящие методические указания предназначены для практического освоения основ компьютерной геометрии и графики. С этой целью используются возможности графической библиотеки одного из самых распространенных языков программирования, каким является Turbo Pascal.

 

Лабораторная работа 1

БАЗОВАЯ ГРАФИКА TURBO PASCAL

Цель работы

Изучение и практическое использование процедур и функций модуля Graph для работы с графическими  примитивами, их атрибутами, а также с текстом в графическом режиме.

Методические указания

Работой дисплея микропроцессор компьютера управляет через специализированное устройство сопряжения - видеоадаптер. В состав последнего входит видеопамять, хранящая образ экрана. Адаптер может работать в одном из двух режимов: текстовом или графическом. По умолчанию установлен текстовый режим, в котором весь экран монитора разбит на строки и столбцы. В графическом режиме он разбит на определенное число элементов изображения по горизонтали и вертикали. Эти элементы называют пикселами или пэлами. Программное взаимодействие с адаптером осуществляется через его драйвер. Драйвер и режим его работы задаются процедурой:

InitGraph(driver, mode, path).

Процедура отменяет текстовый режим и устанавливает графический. Значения параметров-переменных driver (драйвер) и mode (режим) типа integer задаются с помощью констант из таблицы графических режимов модуля Graph [1]. В табл. 1 приведены некоторые из них.

Таблица 1

Драйвер

Режим

Число

пикселов

Число

страниц

Количество

цветов

EGA= 3

EGALo= 0

640*200

4

16

EGA= 3

EGAHi= 1

640*350

2

16

VGA= 9

VGALo= 0

640*200

4

16

VGA= 9

VGAMed= 1

640*350

2

16

VGA= 9

VGAHi= 2

640*480

1

16

 

Третий параметр процедуры - строка, задающая по правилам MS DOS путь к файлу драйвера. Если файл находится в текущем каталоге, то указывают пустую строку (¢¢). Константа Detect=0 позволяет использовать драйвер по умолчанию. Если при этом не задан параметр regim, то назначается режим с наибольшим номером.

Отменяет графический режим процедура CloseGraph без параметров.

Цвет фона экрана задают с помощью процедуры SetBkColor(<цвет>), а цвет линий и отдельных пикселов - процедурой SetColor(<цвет>). Параметр цвет задают равным одной из констант цвета: от Black=0 (черный) до White=15 (белый).

Понятию курсора в текстовом режиме соответствует понятие текущего указателя в графическом. Указатель, в отличие от курсора, невидим и содержит координаты текущего пиксела для дальнейших графических действий. Координаты измеряются в пикселах, а их отсчет ведется от верхнего левого угла экрана с координатами (0, 0). Наибольшие значения координат имеет точка в правом нижнем углу. Для любого режима их можно определить с помощью функций без параметров GetMaxX и GetMaxY. Перемещает указатель в точку (x, y) процедура MoveTo(x,y). Тип параметров-координат x, y здесь и далее - integer.

В пределах экрана можно организовать окна. Окно с заданным цветом фона и координатами верхнего левого угла (x1, y1) и нижнего правого угла (x2, y2) устанавливает процедура SetViewPort(x1, y1, x2, y2, <отсечка>). Параметр отсечка задают равным true, если выходящие за пределы окна элементы не должны быть видимы, в противном случае задают false. Процедура отменяет предыдущее окно, а в текущем окне отсчет координат ведется от верхнего левого угла, т.е. координаты будут относительными.

Процедура без параметров ClearDevice очищает экран, ликвидирует текущее окно и все назначения, сделанные графическими процедурами.

Процедуры прорисовки различных примитивов

Line(x1, y1, x2, y2) - отрезок прямой между точками (x1, y1), (x2, y2).

Circle(x, y, r) - окружность с центром в точке (x, y) и радиусом r.

RectAngle(x1, y1, x2, y2) - прямоугольник, заданный, как и окно.

Перед использованием следующих далее процедур прорисовки закрашенных фигур предварительно задают тип раскраски с помощью процедуры SetFillStyle(<Тип раскраски>, <цвет>), в которой первый параметр принимает значение одной из констант табл. 2.

Таблица 2

Константа модуля Graph

Т и п    р а с к р а с к и

EmptyFill= 0

Сплошная в цвет фона

SolidFill= 1

Сплошная в заданный цвет

LineFill= 2

Горизонтальная штриховка

LtSlashFill= 3

Косая штриховка линиями ///

SlashFill= 4

То же, но с утолщением линий

BkSlashFill= 5

Косая \\\ с утолщением линий

LtBkSlashFill= 6

То же, но с закраской промежутков

HatchFill= 7

Вертикально-горизональная

XhatchFill= 8

Диагональная в клетку

InterleaveFill= 9

Интенсивная с диагональным рельефом

WideDotFill= 10

Точками

CloseDotFill= 11

Точками, уплотненная

UserFill= 12

Определяется пользователем

 



 
изображении в том числе информации. Боевая единица с любой способностью. Практическая работа Создание