Новости           

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности

Гостевая книга

От автора

БАЗОВЫЕ ГРАФИЧЕСКИЕ ЭЛЕМЕНТЫ 

              Графический инструментарий представляет процедуры реализации
         базовых графических элементов, которые на первый взгляд дублируют
         аналогичные процедуры,  имеющиеся в Турбо Паскале. Однако, это не
         так.  Процедуры инструментария могут работать в планетной коорди-
         натной системе, тогда как соответствующие процедуры Турбо Паскаля
         не могут.  Процедуры реализации базовых графических процедур опи-
         саны в таблице 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

(с)Все права защищены

По всем интересующим вопросампрошу писать на электронный адрес

    Rambler's Top100 PROext: Top 1000
    Rambler's Top100 Яндекс цитирования
Hosted by uCoz