倾斜椭圆上的点

时间:2017-04-20 13:02:26

标签: python geometry ellipse

Tilted ellipse

如上面的链接图所示,我们假设我们有一个倾斜的椭圆,比原始位置说“theta”角。 我们如何获得具有相同 y 值的 x1, x2 的坐标? 要么以分析方式获得,要么以数字方式获得它将是正常的。但是,使用例如Python的数值方法可能更适合这个社区而且很有希望,我想。

1 个答案:

答案 0 :(得分:1)

以角度Theta旋转的以原点为中心的椭圆具有方程式

x = a * Cos(t) * Cos(theta) - b * Sin(t) * Sin(theta) 
y = a * Cos(t) * Sin(theta) + b * Sin(t) * Cos(theta)

我们可以引入伪角度Fi和幅度M

 Fi = atan2(a * Sin(theta), b * Cos(Theta))
 M = Sqrt((a * Sin(theta))^2 + (b * Cos(Theta))^2)

所以

 y = M * Sin(Fi) * Cos(t) + M * Cos(Fi) * Sin(t)
 y/M = Sin(Fi) * Cos(t) +  Cos(Fi) * Sin(t)
 y/M = Sin(Fi + t) 

 Fi + t = ArcSin( y / M)
 Fi + t = Pi - ArcSin( y / M)
 t1 = ArcSin( y / M) - Fi        //note two values
 t2 = Pi - ArcSin( y / M) - Fi

现在替换第一个等式中的t的两个值,并获得给定Y的X值

如果你有像

那样的一般椭圆方程
 A*x^2 + 2*B*x*y + C*y^2 + D*x + E*y + F = 0

用已知值代替y,用x求解二次方程