给定具有起点和终点(都在笛卡尔 x,y 坐标中)、半径和方向(顺时针或逆时针)的弧的描述,我需要将弧转换为具有起始角度的弧,端角、中心和半径。
是否有已知的算法或伪代码允许我这样做?另外,是否有任何特定的术语来描述这些类型的转换?
最佳答案
你可以找到一个中心来解决这个方程组:
(sx-cx)^2 + (sy-cy)^2=R^2
(ex-cx)^2 + (ey-cy)^2=R^2
其中 (sx,sy) 是起点坐标, (ex,ey) 是终点坐标,未知数 cx,cy 是中心。 该系统有两种解决方案。然后可以找到角度为
StartAngle = ArcTan2(sy-cy, sx-cx)
EndAngle = ArcTan2(ey-cy, ex-cx)
请注意,已知方向不允许在没有额外限制的情况下从两种可能的解决方案中选择一种。例如,start=(0,1), end=(1,0), R=1 和 Dir = 顺时针为我们提供中心为 (0,0) 的 Pi/2 弧和中心为 (0,0) 的 3*Pi/2 弧1,1)
关于geometry - 弧变换起点终点到起点角度终点角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15861421/