我有一个简单的图表,用户可以确定弧度的起始和结束方向。控件使用
OnRender
的重写方法绘制图表。我正在使用StreamGeometryContext.ArcTo
绘制弧线。该方法具有一个IsLargeArc
属性,用于确定如何绘制弧线(大于180度(PI)为真,小于180度为假)。我从一个条件中确定这个值,这个条件运行良好: //Rule does not exceed 180 degrees in direction (radian), IsLargeArc= False else true
if (Start < Math.PI && (End - Start) < Math.PI || //currently unknow condition in here to deal with < PI when start angle is > then end angle?)
{
//IsLargeArc = false;
}
else
{
//IsLargeArc= true;
}
问题出现在起始角度小于结束角度的情况下。例如,从270度到120度。我需要一个条件来满足这种情况下大于180度(PI)的角度。数学不是我的强项。我认为我需要将PI*2加到结束角度,然后以某种方式比较这两个值,但不确定如何实现?
2 * pi
弧度,正如你所注意到的。 - Pieter Geerkens