AddArcToPath

Векторная графика, определение и рисование контуров

Описание

Добавляет круговую дугу в текущий контур. Дуга рисуется вокруг центра (CenterX, CenterY); ее радиус равен расстоянию от центра до текущей точки контура, а угол развертки задается в TotalAngle градусов. Текущая точка после вызова — конечная точка дуги, поэтому последующие вызовы AddLineToPath или AddArcToPath продолжают от нее

Синтаксис

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);

Параметры

CenterXГоризонтальная координата центра дуги
CenterYВертикальная координата центра дуги
TotalAngleУгол развертки в градусах. Положительные значения идут по часовой стрелке; отрицательные — против часовой. Значение должно быть ненулевым. 360 (или -360) рисует полный круг

Возвращаемые значения

0Failed — no document is open, no path has been started, or TotalAngle is zero.
1Дуга добавлена в текущий контур

Примечания

Радиус выводится неявно из расстояния между текущей точкой (заданной последним StartPath, AddLineToPath, AddCurveToPath или предыдущим AddArcToPath) и центром, переданным в этом вызове. Чтобы нарисовать полный круг, вызовите StartPath в любой точке окружности и вызовите AddArcToPath с нужным центром и разверткой 360

The arc is rendered as a chain of cubic Bézier segments, accurate to within sub-pixel tolerance for typical PDF page sizes.

Пример

// 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);

См. также

StartPath, AddLineToPath, AddCurveToPath, AddBoxToPath, DrawPath, DrawPathEvenOdd