我试图找到一个算法来推导从旋转椭圆的中心到其四肢的4个角度 . 换句话说,从中心到边界框接触椭圆线的点 .
我已经找到了如何使用以下方法获取边界框:
leftX/rightX = h± sqrt(a*a*cos(PI)*cos(PI) + b*b*sin(PI)*sin(PI))
topY/bottomY = k± sqrt(a*a*sin(PI)*sin(PI) + b*b*cos(PI)*cos(PI))
上面给了我边界框AND:
左右点的 x
顶部和底部的 y
但我需要左右点的 x and y 和顶点和底点的 x and y 来计算角度 .
我觉得我错过了一些简单但却找不到的东西 .
图像显示了边界框顶部的点 .
1 回答
设椭圆半轴为
a, b
,中心点为(cx, cy)
,旋转角度为fi
. 然后在参数t
的椭圆周长上的坐标是:为了获得极值点,我们可以通过
t
区分坐标并将导数设置为零快速制作的
a: 200; b: 100; fi: Pi/6 CW;
的真实示例Delphi code