|
Новости |
БАЗОВЫЕ ГРАФИЧЕСКИЕ ЭЛЕМЕНТЫ Графический инструментарий представляет процедуры реализации базовых графических элементов, которые на первый взгляд дублируют аналогичные процедуры, имеющиеся в Турбо Паскале. Однако, это не так. Процедуры инструментария могут работать в планетной коорди- натной системе, тогда как соответствующие процедуры Турбо Паскаля не могут. Процедуры реализации базовых графических процедур опи- саны в таблице 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 |
(с)Все права защищеныПо всем интересующим вопросампрошу писать на электронный адрес |