Основы алгоритмизации и программирования. Часть четвертая. Файловая система Turbo Pascal. Асламова В.С - 50 стр.

UptoLike

99
Однако данная процедура годится только для построения прямоугольни-
ков, стороны которых параллельны осям координат.
DrawPoly( NumPoints:Word; Var PolyPoints)- используется для
изображения фигур, образованных ломаными линиями. В параметре
NumPoints задается число, на единицу большее количества вершин мно-
гоугольника. Параметр PolyPoints содержит координаты вершин. Они
должны быть перечислены последовательно в порядке обхода по контуру.
Каждая вершина определяется двумя координатами, сначала указывается
координата х, а за ней - у. В конце повторно указывается пара
координат
первой заданной вершины, поэтому количество пар должно быть равно
NumPoints+1.
Пример:
Выведем на экран ромб, изображенный на рисунке.
x= GetMaxX div 2
y=GetMaxY div 2
Рис.3.
Uses Graph,Crt;
{Введем тип данных для хранения координат точ-
ки изображения}
Type Point=Record
x:Word;
у:Word;
end;
Var gmx, gmy:Integer;
{Переменная Romb содержит координаты вер-
шин}
Romb:Array[1..5] of Point;
delta:Word;
{$1 D:/pas/init.pas}
Begin
Init;
{Установим цвета и параметры линий}
100
SetColor(Red) ;
SetBkColor(Blue) ;
SetLineStyle(0, 1, 1) ;
gmx:=GetMaxX div 2;
gmy:=GetMaxY div 2;
delta:=50
{Определим все координаты вершин ромба}
Romb[1].х =gmx;
Romb[1].y =gmy – delta;
Romb[2].х =gmx + delta;
Romb[2].у =gmy;
Romb[3].х =gmx;
Romb[3].y =gmy + delta;
Romb[4].x =grox – delta;
Romb[4].у =gmy;
Romb[5].х =gmx;
Romb[5].у=gmy – delta;
{Выведем ромб на экран}
DrawPoly(5,Romb) ;
Repeat Until KeyPressed;
CloseGraph;
end.
Рисование закрашенных фигур
FloodFill(X, Y:Integer; Border:Word)- заполняет уже нарисованный
контур фигуры. Параметры Х и Y должны содержать координаты точки, на-
ходящейся внутри заполняемой области, а Border - цвет линии, до которой
производится закрашивание, то есть цвет контура. Контур должен быть пол-
ностью замкнутым, в противном случае заливка распространится через
имеющуюся щель, даже шириной в 1 пиксель, за пределы области.
Цвет и
узор заполнения необходимо определить до использования про-
цедуры FloodFill.
SetFillStyle(Patter, Color:Word)- используется для задания стандартно-
го орнамента и цвета заполнения фигур. Первый параметр, Pattern,
определяет тип заполнения, а второй, Color, - цвет.
Необходимо помнить, что контур должен быть образован линией
сплошного типа, если контур образован например пунктиром, то заполнение
выйдет за пределы контура.
Рассмотрим использование нескольких процедур построения закра-
шенных фигур на примере следующей программы.
   Однако данная процедура годится только для построения прямоугольни-             SetColor(Red) ;
ков, стороны которых параллельны осям координат.                                   SetBkColor(Blue) ;
             DrawPoly( NumPoints:Word; Var PolyPoints)- используется для           SetLineStyle(0, 1, 1) ;
                                                                                   gmx:=GetMaxX div 2;
   изображения фигур, образованных ломаными линиями. В параметре                   gmy:=GetMaxY div 2;
   NumPoints задается число, на единицу большее количества вершин мно-               delta:=50
   гоугольника. Параметр PolyPoints содержит координаты вершин. Они                                       {Определим все координаты вершин ромба}
   должны быть перечислены последовательно в порядке обхода по контуру.            Romb[1].х =gmx;
   Каждая вершина определяется двумя координатами, сначала указывается             Romb[1].y =gmy – delta;
                                                                                   Romb[2].х =gmx + delta;
   координата х, а за ней - у. В конце повторно указывается пара координат         Romb[2].у =gmy;
   первой заданной вершины, поэтому количество пар должно быть равно               Romb[3].х =gmx;
   NumPoints+1.                                                                    Romb[3].y =gmy + delta;
             Пример:                                                               Romb[4].x =grox – delta;
             Выведем на экран ромб, изображенный на рисунке.                       Romb[4].у =gmy;
                                                                                   Romb[5].х =gmx;
                                                                                   Romb[5].у=gmy – delta;
                                              x= GetMaxX div 2                                                    {Выведем ромб на экран}
                                              y=GetMaxY div 2                      DrawPoly(5,Romb) ;
                                                                                   Repeat Until KeyPressed;
                                                                                   CloseGraph;
                                                                                   end.

                                                                                                Рисование закрашенных фигур
                                                                                   FloodFill(X, Y:Integer; Border:Word)- заполняет уже нарисованный
                                                                             контур фигуры. Параметры Х и Y должны содержать координаты точки, на-
                                     Рис.3.
                                                                             ходящейся внутри заполняемой области, а Border - цвет линии, до которой
     Uses Graph,Crt;
                           {Введем тип данных для хранения координат точ-    производится закрашивание, то есть цвет контура. Контур должен быть пол-
ки изображения}                                                              ностью замкнутым, в противном случае заливка распространится через
      Type Point=Record                                                      имеющуюся щель, даже шириной в 1 пиксель, за пределы области.
      x:Word;                                                                      Цвет и узор заполнения необходимо определить до использования про-
      у:Word;                                                                цедуры FloodFill.
      end;
      Var gmx, gmy:Integer;                                                        SetFillStyle(Patter, Color:Word)- используется для задания стандартно-
                            {Переменная Romb содержит координаты вер-        го орнамента и цвета заполнения фигур. Первый параметр, Pattern,
шин}                                                                         определяет тип заполнения, а второй, Color, - цвет.
       Romb:Array[1..5] of Point;                                                  Необходимо помнить, что контур должен быть образован линией
      delta:Word;                                                            сплошного типа, если контур образован например пунктиром, то заполнение
                           {$1 D:/pas/init.pas}
      Begin                                                                  выйдет за пределы контура.
        Init;                                                                      Рассмотрим использование нескольких процедур построения закра-
                           {Установим цвета и параметры линий}               шенных фигур на примере следующей программы.
                                    99                                                                           100