Přidáno 1 691 bajtů,
4. 10. 2012, 16:33 Nakreslí a vyplní eliptický sektor (výseč).
;Deklarace
procedure Sector(x, y: Integer; StAngle,EndAngle, XRadius, YRadius: Word);
;Režim
:Reálný, Chráněný
;Poznámky
:Bod (X, Y) je střed, XRadius a YRadius určují horizontální, resp. vertikální poloměr; Sector kreslí od úhlu StAngle do úhlu EndAngle obrys aktuální barvou a vyplní ho vzorkem a barvou, definovanými pomocí SetFillStyle nebo [[SetFillPattern]].
:Pro počáteční úhel 0 a koncový úhel 360 vykreslí procedura celou elipsu. Úhly u [[Arc]], [[Ellipse]], [[FillEllipse]], [[PieSlice]] a [[Sector]] se měří proti směru hodinových ručiček, přičemž 0 stupňů je v poloze "tři hodiny", 90 stupňů v poloze "dvanáct hodin" atd.
:Dojde-li během vyplňování sektoru k chybě, [[GraphResult]] vrátí hodnotu grNoScanMem.
;Omezení
:Je nutno být v grafickém režimu.
;Viz také
:[[Arc]]
:[[Circle]]
:[[Ellipse]]
:[[GetArcCoords]]
:[[GetAspectRatio]]
:[[PieSlice]]
:[[SetFillPattern]]
:[[SetFillStyle]]
:[[SetGraphBufSize]]
Vzorový příklad
{Sector.PAS}
{Vzorový příklad pro proceduru Sector.}
uses Graph;
const R = 50;
var
Driver, Mode: Integer;
Xasp, Yasp: Word;
begin
Driver := Detect;{ Přepnutí do grafického režimu }
InitGraph(Driver, Mode, ' ');
if GraphResult < 0 then
Halt(1);
Sector(GetMaxX div 2, GetMaxY div 2, 0, 45, R, R);
GetAspectRatio(Xasp, Yasp);{ Kreslení kruhového sektoru }
Sector(GetMaxX div 2, GetMaxY div 2,{ Střed }
180, 135,{ Zrcadlový obraz předchozího }
R, R * Longint(Xasp) div Yasp);{ Kruhový sektor }
Readln;
CloseGraph;
end.
[[Category:Graph]]
[[Category:Funkce Graph]]