|
|
| Новости |
БАЗОВЫЕ ГРАФИЧЕСКИЕ ЭЛЕМЕНТЫ
Графический инструментарий представляет процедуры реализации
базовых графических элементов, которые на первый взгляд дублируют
аналогичные процедуры, имеющиеся в Турбо Паскале. Однако, это не
так. Процедуры инструментария могут работать в планетной коорди-
натной системе, тогда как соответствующие процедуры Турбо Паскаля
не могут. Процедуры реализации базовых графических процедур опи-
саны в таблице 10-1.
Таблица 10-1
Процедуры реализации базовых графических элементов
-----------------------------------------------------------------
Имя Функция
-----------------------------------------------------------------
DrawPoint Нарисовать точку в заданном месте
DrawLine Нарисовать линию в заданном месте
DrawSguare Нарисовать квадрат в заданном месте
DrawCircle Нарисовать круг в заданном месте
DrawCircleSegment Нарисовать круг в заданном месте
DrawCircleDirect Нарисовать круг, используя абсолютные
координаты
SetAspect Установить коэффициент взгляда для
процедур реализации круга
GetAspect Возврат к текущему коэффициенту взгляда
-----------------------------------------------------------------
Следующая простая программа выбирает планету и окно и рисует
круги, квадраты и линию. Результаты показаны на рис.10-1.
program simple_graphics;
{Si typedef.sys}
{Si graphix.sys}
{Si kernel.sys}
var
radius: real;
i:integer;
begin
InitGraphic;
DefineWorld(1, 0, 0, 1000, 1000);
SelectWorld(1);
SelectWindom(1);
DrawBorder; {установить границу вокруг окна }
SetAspect(1);
Энциклопедия по Т-Паскалю ч.2 = 131 =
radius: = 0.05;
for i: = 1 to 10 do
begin
DrawCircle(500,500,radius);
radius: = radius + 0.2;
end;
repeat until KeyPressed;
ReadLn;
DrawSguare(100, 100, 900, 900, false);
DrawSguare(400, 400, 600, 600, false);
repeat until KeyPressed;
ReadLn;
DrawLine(0, 0, 1000, 1000);
repeat until KeyPressed;
LeaveGraphic;
end.
Процедура SetAspect используется для установки коэффициента
взгляда, который определяет способ рисования круга. Любое значе-
ние, отличное от 1, будет порождать элипс вместо круга. Процедура
DrawBorder помещает границу вокруг активного окна.
+-------------------------------------------------+
¦ +-------------------------------------------+ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ +-------------------------------------------+ ¦
+-------------------------------------------------+
Рис.10-1. Круги, квадраты и линии в области 1000х1000
Чтобы понять влияние планетных координат, изменим предложе-
ние DefineWold и запустим программу снова. Окончательное отобра-
жение будет выглядеть, как показано на рис.10-2. Отметим, что не
все круги влезли в область 2000х2000. Когда что-нибудь не влезает
в область, процедуры инструментария автоматически "отстригают"
его по краю.
+--------------------------------------------------+
¦ +--------------------+ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ +--------------------+ ¦
¦ ¦
¦ ¦
¦ ¦
¦ ¦
¦ ¦
¦ ¦
¦ ¦
¦ ¦
+--------------------------------------------------+
Рис.10-2. Круги, квадраты и линия в области 2000х2000
|
|
(с)Все права защищеныПо всем интересующим вопросампрошу писать на электронный адрес
|