求角度a处的椭圆半径?

问题描述

我知道椭圆的中心, 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