【发布时间】:2015-02-21 07:36:07
【问题描述】:
我想知道弧的顶点,我有它的起点、中心和终点以及弧的半径。我知道绘制的弧是通过创建具有参数中指定的精度的小线。我想要实现的是计算多边形的面积,其中可能有一个弧,看起来就像我附在这个问题上的图像。
- SP = 弧的起点。
- EP = 弧的终点。
- CP = 弧的中心。
【问题讨论】:
我想知道弧的顶点,我有它的起点、中心和终点以及弧的半径。我知道绘制的弧是通过创建具有参数中指定的精度的小线。我想要实现的是计算多边形的面积,其中可能有一个弧,看起来就像我附在这个问题上的图像。
【问题讨论】:
知道弧的起点、中心和终点不足以唯一地定义它。你必须知道一些其他参数。
当弧线定义好时,可以计算出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
Edit2: 连接SP和EP得到剩余多边形,比建立折线逼近弧和计算百顶点多边形面积更简单。
折线近似:
我们希望弧线距离不超过某个限制 d。所以我们将计算小弧角A
d = R * (1-Cos(A/2))
A = 2 * ArcCos(1-d/R)
现在将大弧分成角度为A的小块,并生成新的顶点
【讨论】:
您的绘图似乎是一个半椭圆。
长轴 (A) 应为 SP-EP,短轴 (B) 应指定。区域为Pi.A.B/8。
【讨论】: