编辑: 很抱歉,之前的插图是在我处理角度时头重脚轻提供的。我将再次尝试解释:
在此链接http://i.stack.imgur.com/QSu2D.png中,您可以看到我将该弧切成两半,弧的右侧部分包含135度,左侧部分包含90度。
该弧从-180开始,结束于45(如果归一化,则从180开始,结束于405)。
我已经成功创建了以下代码,以计算右侧部分和左侧部分所包含的弧度量:
f1 = (angle2>270.0f?270.0f:angle2) - (angle1<90.0f?90.0f:angle1);
if (f1 < 0.0f) f1 = 0.0f;
f2 = (angle2>640.0f?640.0f:angle2) - (angle1<450.0f?450.0f:angle1);
if (f2 < 0.0f) f2 = 0.0f;
f3 = (angle2>90.0f?90.0f:angle2) - angle1;
if (f3<0.0f) f3=0.0f;
f4 = (angle2>450.0f?450.0f:angle2) - (angle1<270.0f?270.0f:angle1);
if (f4<0.0f) f4=0.0f;
在将角度标准化为非负数后,它可以很好地工作,但当然需要在小于360时开始。 然后f1 + f2给出了左半部分的总和,f3 + f4给出了右半部分的总和。 它也没有考虑弧被定义为超过360的情况,这可能是一个“错误”的情况。
但是,这似乎更像是一种“解决方法”,而不是正确的数学解决方案。 我正在寻找更优雅的解决方案,它应该基于两个弧之间的“交集”(因为数学没有“边”,它不是视觉的);
谢谢!