我想知道弧的顶点,我有它的StartPoint,Center和EndPoint以及弧的半径。我知道绘制的弧是通过创建一个具有参数中指定的精度的小线。我想要实现的是计算多边形的面积,其中可能有一个弧形,看起来就像我在这个问题上附带的图像。
答案 0 :(得分:0)
了解StartPoint,Center和Arc的EndPoint不足以唯一地定义它。你必须知道另一个参数。
当明确定义弧时,可以计算circular segment geometrically
的面积修改:因为您也知道半径R,我们可以计算一个区域:
Theta = 2 * ArcSin(Distance_SPtoEP/(2*R))
Area = 1/2 * R * R * (Theta - Sin(Theta))
快速检查:
R = 1, semicircle.
Theta = 2 * ArcSin(2/2) = 2 * Pi/2 = Pi
Area = 1/2 * (Pi - 0) = Pi/2 - true
编辑2:连接SP和EP以获得剩余的多边形比建立几十个多边形的弧和calc区域的折线近似更简单。
折线近似:
我们希望弧线距离不超过某些限制d。所以我们将计算小弧角A
d = R * (1-Cos(A/2))
A = 2 * ArcCos(1-d/R)
现在将大弧分成角度为A的小块,并生成新的顶点
答案 1 :(得分:0)
您的绘图似乎表示半椭圆。
长轴(A
)应为SP-EP
,短轴(B
)应给出。该区域为Pi.A.B/8
。