1 回答
TA贡献1818条经验 获得超11个赞
下面的方法创建了一个PathGeometry带有单个圆的ArcSegment,它可以从 0 到 360 度,但不包括 360 度。圆的中心是一个坐标(0, 0)。
IsLargeArc如果角度大于180度,则将ArcSegment的属性设置为true很重要。
private Geometry CreateArc(double radius, double angle)
{
var endPoint = new Point(
radius * Math.Sin(angle * Math.PI / 180),
radius * -Math.Cos(angle * Math.PI / 180));
var segment = new ArcSegment(
endPoint, new Size(radius, radius), 0,
angle >= 180, SweepDirection.Clockwise, true);
var figure = new PathFigure { StartPoint = new Point(0, -radius) };
figure.Segments.Add(segment);
var geometry = new PathGeometry();
geometry.Figures.Add(figure);
return geometry;
}
如果需要绘制一个完整的圆,则必须添加第二个ArcSegment,或者返回EllipseGeometry。
- 1 回答
- 0 关注
- 132 浏览
添加回答
举报