Читайте также:
|
|
Экран - прямоугольный массив адресуемых точек, и любое изображение образуется как композиция светящихся или погашенных пикселов. Каждая точка имеет горизонтальный номер nx и вертикальный номер ny.
В модуле Graph предусмотрена возможность программного опроса максимальных адресуемых координат экрана функциями
GetMaxX: Integer;
GetMaxY: Integer;
Возвращаемые ими значения соответствуют параметрам nx_max и ny_max. Точка с адресом (0,0) обычно расположена в левом верхнем углу экрана дисплея. Координаты (nx, ny) называют также координатами устройства. Они могут принимать только целые значения. Кроме того, используют физическую систему координат (px, py), где рх - физическое расстояние на экране по горизонтали, а ру - по вертикали. Расстояние измеряется в дюймах или пикселях.
Также есть так называемая мировая система координат. Это декартова система (Х,Y), определённая программистом, является независимой от типа устройства отображения. Параметры, которыми задаются диапазоны изменение X и Y (Xmin, Xmax, Ymin, Ymax), определяют прямоугольную область в абстрактном математическом двумерном пространстве.
«Текущий указатель» или графический курсор выполняет те же функции, что и курсор в текстовом режиме, при этом он является невидимым.
Положение графического курсора указывает на начальные координаты изображения графического примитива, выводимого «от текущей позиции». В графическом режиме текущий указатель перемещается специальными процедурами. В частности, процедура MoveTo(x,y:Integer) перемещает его в точку экрана с координатами (x,y). Другая процедура MoveRel(dx,dy:integer) перемещает текущий указатель на dx пикселей по горизонтали и соответственно на dy по вертикали относительно последнего положения текущего указателя. Положительные значения dx, dy увеличивают его координаты, а отрицательные - уменьшают. В системе координат дисплея ось Y направлена вниз. Если указатель надо перенести вверх, то приращение dy должно быть отрицательным.
Для определения текущего положения графического курсора используются функции GetX: Integer; GetY: Integer; возвращающие положение указателя соответственно по оси X и по оси Y.
Положение текущего указателя изменяют также процедуры LineTo, LineRel, OutText.
Все процедуры инициализации и очистки экрана (InitGraph, GraphDefaults, ClearDeviice, SetGraphMode, SetViewPort, ClearViewPort) устанавливают его в положение (0,0).
Рисование графических примитивов и фигур. Линии и их
Стили.
Процедура вывода отрезка на экран в текущем цвете и стиле определена в виде:
Line(X1,Y1,X2,Y2:integer).
Задаются координаты начала (X1,Y1) и конца (X2,Y2) отрезка. Возможны ещё два метода рисования отрезков:
1.Из текущей точки в точку с заданными координатами (X,Y) процедурой
LineTo(X,Y:Integer).
2.Относительно текущей позиции
LineRel(dx,dy:Integer).
Можно управлять стилем линий: задавать толщину, тип (сплошные, пунктирные).
Определены следующие типы и константы стилей изображения линий:
TYPE
LineSettingType=RECORD
LineStyle:Word; {стиль(тип)}
Pattern:Word; {шаблон типа}
Thickness:Word; {толщина}
End;
CONST
{Для значений поля LineStyle}
SolidLn =0 {сплошная линия}
DottedLn =1 {точечная линия}
CenterLn =2 {штрихпунктирная линия}
DashedLn =3 {пунктирная линия}
UserBitLn =4 {Узор линии определяет пользователь}
{Для значений поля Thickness}
NormWidth=1 {толщина линии в 1 пиксел}
ThickWidth=3 {толщина линии в 3 пиксела}
Чтобы получить информацию о текущем стиле линий, можно воспользоваться процедурой GetLineSettings(Var LineType:LineSettingType),
а чтобы установить новый стиль линий, необходимо использовать процедуру SetLineStyle(LineStyle,Pattern,Thickness:Word), подставив в неё соответствующие значения.
Если параметр LineStyle не равен UserBitLn, то значение параметра Pattern не играет роли и обычно задаётся нулём.
Дата добавления: 2015-02-22; просмотров: 94 | Поможем написать вашу работу | Нарушение авторских прав |
|