Система координат в графическом режиме.

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

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

Чтобы узнать максимальные координаты экрана в текущем режиме работы, воспользуемся стандартными функциями GetMaxX и GetMaxY. Для этого наберите небольшую программу:

Uses Graph;

Var

GraphDriver, GraphMode: integer;

Begin

GraphDriver:=detect;

InitGraph(GraphDriver, GraphMode, ‘..\BGI’);

Writeln(GetMaxX, 'x', GetMaxY);

Readln;

CloseGraph;

End.

Примечание. Для нашего графического режима обычно значение максимальной координаты X равно 640 пикселям, а Y– 480 пикселям.

Чтобы точно строить изображение на экране, Вам нужно сначала нарисовать, как это должно выглядеть на бумаге. Для этого начертите в тетради систему координат графического режима.

x

 

Итак, отсчет начинается с верхнего левого угла с координатами (0;0), значение Х – столбец, отсчет слева направо; значение Y – строка, отсчет сверху вниз.

Чтобы строить изображение, нужно указать точку начала вывода. В графическом режиме нет видимого курсора, но есть так называемый невидимый текущий указатель (Current Pointer). После инициализации графического режима указатель стоит в точке (0;0). Чтобы переместить его в нужное место используют следующие процедуры:

MoveTo (X, Y), где переменные X, Y типа Integer – перемещает текущий указатель в точку с координатами (X,Y).

Например, MoveTo (200, 100)

MoveRel (dX, dY), где переменные dX, dY типа Integer – перемещает текущий указатель по горизонтали на расстояние, равное dX пикселям, а по вертикали на расстояние, равное dY пикселям. (Relation (англ.) – относительно)

Например, если после выполнения предыдущей процедуры текущий указатель находится в точке (200, 100), то после выполнения процедуры MoveRel (25, 150) он будет находится в точке с координатами (225, 250).

PutPixel(X, Y, Color), где переменные X, Y типа Integer, а Color типа Word – процедура выводит точку заданного цвета Color в точку с координатами (X, Y).

Задание. Наберите в теле программы следующие процедуры PutPixel(300, 150, Red), PutPixel(45, 420, 9) и просмотрите их действие.

 

Для задания цвета точки можно использовать как слово на английском языке, так и цифру из следующей таблицы:

Цвет Цвет Код
Black черный
Blue синий
Green зеленый
Cyan бирюзовый
Red красный
Magenta малиновый
Brown коричневый
LightGray светло-серый
DarkGray темно-серый
LightBlue ярко-голубой
LightGreen ярко-зеленый
LightCyan ярко-бирюзовый
LightRed ярко-красный
LightMagenta ярко-малиновый
Yellow желтый
White белый

Line (X1, Y1, X2, Y2), где переменные X1, Y1, X2, Y2 типа Integer – рисуется линия от точки (X1, Y1) до точки (X2, Y2).

LineTo (X, Y),где переменные X, Y типа Integer – рисуется линия из точки, где находится в данный момент курсор в точку (X, Y).

LineRel (dX,dY),где переменные dX, dY типа Integer – рисуется линия из точки, где находится в данный момент курсор (X, Y) в точку (X+dX,Y+dY).

Задание. Придумайте самостоятельно примеры с использованием всех процедур вычерчивания линий.

 

У Вас не получается нарисовать линии? В чем же причина? Если внимательно посмотреть на эти процедуры и сравнить их с процедурой PutPixel, то можно заметить, что в них нет параметра, указывающего цвет рисования линии. В этом и других аналогичных случаях цвет задается специальной процедурой.

SetColor (Color), где переменная Color типа Word - устанавливает текущий цвет для выводимых линий и символов.

Задания. 1. Исправьте свою программу так, чтобы процедуры рисовали линии различных цветов.

2. В начерченной ранее системе координат изобразите на чертеже точки:

А(150,450), В(100,350), С(350,350), D(300,450), E(200,350), F(200,50), L(250,40), K(200,20), M(300,250), X(175,400), Y(225,400), Z(275,400).

3. Соедините точки, получая отрезки:

AB, BC, CD, AD, EK, KL, LF, FM, ME.

Какая фигура у Вас получилась?

4. Напишите программу, рисующую эту фигуру, по вашему рисунку.

Внимание!Следите за порядком на дискете. Организуйте каталог A:\GRAPHIKA, где будут находиться файлы всех Ваших программ изучаемой темы.








Дата добавления: 2015-05-16; просмотров: 1567;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.01 сек.