Otevřít hlavní menu

Změny

Sector

Přidáno 1 691 bajtů, 4. 10. 2012, 17:33
Created page with "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..."
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]]