Sector

Z Delphi & Pascal (česká wiki)
Verze z 4. 10. 2012, 17:01, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (1 revízia: Unit Graph)
Skočit na navigaci Skočit na vyhledávání

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.