Иллюстрированный самоучитель по Turbo Pascal

Дуги, окружности, эллипсы

Процедура Circle

Вычерчивает окружность. Заголовок:

Procedure Circle(X,Y: Integer; R: Word);

Здесь:

  • X, Y – координаты центра;
  • R – радиус в пикселях.

Окружность выводится текущим цветом. Толщина линии устанавливается текущим стилем, вид линии всегда SolidLn (сплошная). Процедура вычерчивает правильную окружность с учетом изменения линейного размера радиуса в зависимости от его направления относительно сторон графического экрана, т.е. с учетом коэффициента GetAspectRatio. В связи с этим параметр R определяет количество пикселей в горизонтальном направлении.

В следующем примере в центре экрана создается окно, постепенно заполняющееся случайными окружностями. Для выхода из программы нажмите на любую клавишу.

Uses Graph, CRT;
var
d,r,e,x,y: Integer;
begin.
{Инициируем графику}
d i= Detect; InitGraph(d, r, '');
e: = GraphResult; if e <> grOK then
WriteLn(GraphErrorMsg(e))
else
begin
{Создаем окно в центре экрана}
х: = GetMaxX div 4;
у: = GetMaxY div 4;
Rectangle(х,у,3*х,3*у);
SetViewPort(x+1,y+1.3*x-1.3*y-1,ClipOn);
{Цикл вывода случайных окружностей}
repeat
SetColor(succ(Random(white))); {Случайный цвет}
SetLineStyle(0.0.2*Random(2)+1); {и стиль линии}
х: = Random(GetMaxX); {Случайное положение}
у: = Random(GetMaxY); {центра окружности}
Circle(х,у,Random(GetMaxY div 4));
until KeyPressed;
if ReadKey=#0 then x: = ord(ReadKey);
CloseGraph
end
end.

Процедура Arc

Чертит дугу окружности. Заголовок:

Procedure Arc(X,Y: Integer; BegA,EndA,R: Word);

Здесь:

  • X, Y – координаты центра;
  • BegA, EndA – соответственно начальный и конечный углы дуги;
  • R – радиус.

Углы отсчитываются против часовой стрелки и указываются в градусах. Нулевой угол соответствует горизонтальному направлению вектора слева направо. Если задать значения начального угла 0 и конечного – 359, то будет выведена полная окружность. При вычерчивании дуги окружности используются те же соглашения относительно линий и радиуса, что и в процедуре Circle.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.