AddArcToPath
Vektorová grafika, definice a kreslení cest
Popis
Přidá kruhový oblouk do aktuální cesty. Oblouk se kreslí kolem středového bodu (CenterX, CenterY); jeho poloměr odpovídá vzdálenosti od středu k aktuálnímu bodu cesty a rozprostře se na TotalAngle stupňů. Aktuálním bodem po volání je koncový bod oblouku, takže další volání AddLineToPath nebo AddArcToPath navážou odsud
Syntaxe
Delphi
Function TPDFlib.AddArcToPath(CenterX, CenterY, TotalAngle: Double): Integer;
ActiveX
Function PDFlib::AddArcToPath(CenterX As Double, CenterY As Double, TotalAngle As Double) As Long
DLL
int DLAddArcToPath(int InstanceID, double CenterX, double CenterY, double TotalAngle);
Parametry
| CenterX | Vodorovná souřadnice středu oblouku |
|---|---|
| CenterY | Svislá souřadnice středu oblouku |
| TotalAngle | Úhlové rozpětí ve stupních. Kladné hodnoty jdou po směru hodinových ručiček, záporné proti směru. Hodnota musí být nenulová. 360 (nebo -360) nakreslí celý kruh |
Návratové hodnoty
| 0 | Selhalo — není otevřený žádný dokument, nebyla zahájena žádná cesta nebo je TotalAngle nulový |
|---|---|
| 1 | Oblouk se přidal do aktuální cesty |
Poznámky
Poloměr se odvodí implicitně z vzdálenosti mezi aktuálním bodem (nastaveným nejnovějším StartPath, AddLineToPath, AddCurveToPath nebo předchozím AddArcToPath) a středem předaným tomuto volání. K nakreslení celého kruhu zavolejte StartPath na libovolný bod obvodu kruhu a AddArcToPath s požadovaným středem a rozpětím 360
The arc is rendered as a chain of cubic Bézier segments, accurate to within sub-pixel tolerance for typical PDF page sizes.
Příklad
// A pie slice — straight edge, arc, straight edge back to centre
PDF.SetFillColor(0.7, 0.2, 0.2);
PDF.StartPath(200, 200); // pie centre
PDF.AddLineToPath(280, 200); // out to circle (radius 80, angle 0°)
PDF.AddArcToPath(200, 200, 90); // sweep 90° clockwise
PDF.ClosePath; // back to the centre
PDF.DrawPath(2); // 2 = fill and outline
// A complete circle drawn as a single arc
PDF.StartPath(300, 100);
PDF.AddArcToPath(250, 100, 360);
PDF.ClosePath;
PDF.DrawPath(0);Viz také
StartPath, AddLineToPath, AddCurveToPath, AddBoxToPath, DrawPath, DrawPathEvenOdd