获取Arc的顶点,我有它的StartPoint,Center和EndPoint

时间:2014-12-23 07:08:25

标签: c# geometry

我想知道弧的顶点,我有它的StartPoint,Center和EndPoint以及弧的半径。我知道绘制的弧是通过创建一个具有参数中指定的精度的小线。我想要实现的是计算多边形的面积,其中可能有一个弧形,看起来就像我在这个问题上附带的图像。

  • SP = Arc的StartPoint。
  • EP = Arc的终点。
  • CP =弧心。

enter image description here

2 个答案:

答案 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