问题描述
我知道椭圆的中心, x0 和 y0 。我知道它的 width 和 height 。
如何从x0 / y0获得任意给定角度的半径?
解决方法
通常描述一个以x0,y0为中心的椭圆,其对称轴与坐标轴通过等式对齐
(x-x0)*(x-x0)/(a*a) + (y-y0)*(y-y0)/(b*b) = 1
a和b是定义椭圆的大小和形状的常数。
要获得宽度,我们将y = y0放到x值上
x = x0 + a
x = x0 - a
所以宽度是
w = 2*a
类似的高度是
h = 2*b
如果我们在椭圆上有一个点x,y,并且x轴与向量x0,y0之间的夹角-> x,y是theta,则可以写出x,y
x = x0 + r*cos(theta)
y = x0 + r*sin(theta)
我们需要找到r,以便x,y在椭圆上。将这些值插入椭圆方程并简化:
r = 1.0/hypot( cos(theta)/a,sin(theta)/b)
我猜测半径表示x,y与x0,y0之间的距离。上面是r