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

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

Вот как выглядят две дуги: одна с углами 0 и 90, вторая 270 и 540 градусов (рис. 14.6):

Иллюстрированный самоучитель по Turbo Pascal › Использование библиотеки Graph › Дуги, окружности, эллипсы
Рис. 14.6. Иллюстрация процедуры Arc

Следующая программа создает это изображение:

Uses Graph, CRT;
var
d, r, е: Integer;
Xasp,Yasp: Word;
begin
{Инициируем графику}
d: = Detect;
InitGraphtd, r, '');
e: = GraphResult; if e <> grOK then
WriteLn(GraphErrorMsg(e))
else
begin
GetAspectRatio(Xasp,Yasp);
{R = 1/5 от вертикального размера экрана}
r: = round(Yasp*GetMaxY/5/XAsp);
d: = GetMaxX div 2; {Смещение второго графика}
e: = GetMaxY div 2; {Положение горизонтальной оси}
{Строим левый график}
Line (0,e,5*r div 2,e); {Горизонтальная ось}
Line (5*r div 4,e div 2.5*r div 4.3*e div 2);
Arc (5*r div 4,e,0.90,R); {Дуга}
OutTextXY(0,e+e div 8,'0-90'); {Надпись}
{Правый график}
Line (d,e,d+5*r div 2,e);
Line (d+5*r div 4,e div 2, d+5*r div 4.3*e div 2);
Arc (d+5*r div 4,e,270.540,R);
OutTextXY(d,e+e div 8,'270-540');
{Ждем нажатия на любую клавишу}
if ReadKey=#0 then d: = ord(ReadKey);
CloseGraph
end
end.

Процедура GetArcCoords

Возвращает координаты трех точек: центра, начала и конца дуги. Заголовок:

Procedure GetArcCoords(var Coords: ArcCoordsType);

Здесь Coords – переменная типа ArcCoordsType, в которой процедура возвращает координаты центра, начала и конца дуги.

Тип ArcCoordsType определен в модуле Graph следующим образом:

type
ArcCoordsType = record
X,Y: Integer; {Координаты центра}
Xstart,Ystart: Integer; {Начало дуги}
Xend,Yend: Integer; {Конец дуги}
end;
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.