Система координат в графическом режиме.
Любая информация при работе в графическом режиме на экране монитора представлена совокупностью светящихся точек – пикселей, которые определяются цветом и координатами – положением относительно левого верхнего угла экрана с координатами (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 пикселям.
Чтобы точно строить изображение на экране, Вам нужно сначала нарисовать, как это должно выглядеть на бумаге. Для этого начертите в тетради систему координат графического режима.
|
Итак, отсчет начинается с верхнего левого угла с координатами (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; просмотров: 1579;