Дуги, окружности, эллипсы
Процедура 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.