Ellipse процедурасы эллипстік доға сызады. Тақырыбы:
Procedure Ellipse(X,Y: Integer;BegA,endA,RX,RY: Word);
196
мұндағы X, Y – центр координатасы; ВеgА, endA – сəйкесінше, доғаның бастапқы жəне соңғы бұрыштары; RX, RY – эллипстің пикселмен берілген көлденең жəне тік радиусы.
Эллипстік доғаны сызғанда, Circle процедурасындағы тү-зуге қатысты келісімдер мен Arc процедурасындағы бұрышқа қатысты келісімдер қолданылады. Егер радиустарды CetAspec-tRatio масштабтық коэффициентті ескере отырып алсақ, дұрыс дөңгелек сызылады.
Келесі программада радиус қатынастары əр түрлі үш эллипс-тік доға сызылады (7.8-сурет). Экран мүмкіндігі неғұрлым жо-ғары болса, соғұрлым жақтаулар арасындағы қатынас бірге жақын жəне бірінші графиктің үшінші графиктен айырмашылығы аз болады.
Uses Graph, CRT;
7.8-сурет. Эллипстік доғалар
var
d,r,e: Integer;
xa,ya: Word;
begin
{Графиканы іске қосамыз}
197
d:=Detect;InitGraph(d,r,'');
e:=GraphResult;
if e <> grOK then
WriteLn(GraphErrorMsg(e))
else
begin
{Бірінші график}
OutTextXY(5 0,4 0,'RX = RY');{Жазу} Line (0,100,160,100);{Ось X} Line (80,55,80,145);{Ось Y}
Ellipse (80,100,180,90,40,40);
{Екінші график}
OutTextXY(260,40,'RX = 5*RY');
Line (190,100,410,100);
Line (300,55,300,145);
Ellipse (300,100,0,359,100,20);
{Үшінші график}
OutTextXY(465,40,'Aspect Ratio');
Line (440,100,600,100);
Line (520,55,520,145);
GetAspectRatio(xa, ya);
Ellipse (520,100,0,270,40,round(40*(xa/ ya)));
if ReadKey=#0 then
d:=ord(ReadKey);
CloseGraph
end
end.
Достарыңызбен бөлісу: |