TURBO PASCAL

Новости       

Программы

Turbo Pascal

Игры

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

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

FAQ

Ссылки

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

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

Спонсор

От автора

 

1. 15. 3. 2.  Работа с линиями

            В графическом режиме курсор невидим,  его положение можно определить функциями,  возвращающими значения координат:

                         GetX;   - по оси "Х",           GetY;    - по оси "Y". 

 

 

            Следующие процедуры перемещают курсор без рисования:

  MoveTo(x, y);      -  переместить курсор в точку с координатами (x, y), 

  MoveRel(dx,dy); - сместить курсор на расстояние dx, dy от текущего положения.

 

Для построения многоугольников и ломаных линий удобно использовать процедуры:

       LineTo(x, y);           -  провести отрезок прямой линии от текущего положения

                                                               курсора до точки с координатами X, Y.

              LineRel(dX, dY);   -  провести отрезок прямой линии от текущего положения

                                                        курсора до точки,  смещенной на расстояние dX,  dY по

                                                         соответствующим осям.

            В отличие от процедуры Line(x1, y1, x2, y2);  процедуры LineTo(x, y); и LineRel(dX, dY);  при своем исполнении перемещают текущий указатель. 

 


            Пример операторов для построения восьмиугольника:


       R:=100; { расстояние от вершин до центра xc, yc }

      xc:= GetMaxX div 2;  yc:= GetMaxY div 2;

   for i:= 1 to 8 do begin  alfa:= i * pi/4;    { значение угла в рад.  }

            x[i]:= xc + round(R * cos(alfa));     { координаты вершин }

            y[i]:= yc + round(R * sin(alfa))        

    end;      

              MoveTo(x[8],  y[8]);        { исходная позиция для рисования }

   for i:= 1 to 8 do  LineTo(x[i], y[i]);               { рисование линий }

            Для отрезков прямых линий и процедур с их использованием можно задать режимы построения прямых линий оператором:

                        SetWriteMode(N); 

 

            N=0 - замещение линией изображения на экране ( режим CopyPut ) используется по умолчанию,

            N=1 - изображение комбинируется ( режим XorPut ).  Работа функции состоит в изменении согласно логической операции "исключающее ИЛИ" исходного значения цвета пиксела (числа "1" или "0").  Логическая функция Xor,  примененная к одной переменной дважды,  восстанавливает ее исходное значение: ( J xor I )  xor  I = J .  Следовательно при повторном проведении линии в режиме XorPut изображение этой линии уничтожается,  а цвет пикселов экрана становится исходным.  На этом правиле основаны некоторые программы построения движущихся изображений.

            Пример операторов для рисования движущегося прямоугольника:

SetWriteMode(1);

  a:= 100;   b:= 50;                                    { стороны прямоугольника }

   x1:= 0;  y1:= GetMaxY div 2;

    N:= GetMaxX - x1 - a;                        { N - число перемещений }      

for i:= 0 to N do  begin  

       Rectangle(x1+i, y1, x1+a+i, y1+b); { рисование прямоугольника }

  delay(10); Rectangle(x1+i,y1,x1+a+i,y1+b);{ стирание прямоугольника }  

end;

 

На первую страницу

Rambler's Top100 PROext: Top 1000
Rambler's Top100

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

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

Hosted by uCoz