AddArcToPath

Vector graphics, Path definition and drawing

Description

向当前路径添加圆弧;该圆弧围绕中心点 (CenterX, CenterY) 绘制,其半径等于中心点到路径当前点的距离,且扫过 TotalAngle 度;调用后的当前点是圆弧的终点,因此后续的 AddLineToPathAddArcToPath 调用将从该处继续

Syntax

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

Parameters

CenterX圆弧中心的水平坐标
CenterY弧中心的垂直坐标
TotalAngle以度为单位的旋转角度;正值顺时针旋转,负值逆时针旋转;该值必须非零;360(或 -360)绘制一个完整的圆

Return values

0失败 —— 未打开文档、未开始绘制路径,或 TotalAngle 为零
1圆弧已添加到当前路径中

Remarks

半径隐式地从当前点(由最近的 StartPathAddLineToPathAddCurveToPath 或之前的 AddArcToPath 设置)与传递给此调用的中心之间的距离推导出来;若要绘制一个完整的圆,请 StartPath 到圆周上的任意点,然后调用 AddArcToPath 并传入所需的中心和 360 的扫过角度

圆弧渲染为三次贝塞尔曲线段链,对于典型的 PDF 页面大小,其精确度在子像素容差范围内

Example

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

See also

StartPath, AddLineToPath, AddCurveToPath, AddBoxToPath, DrawPath, DrawPathEvenOdd