我希望通过扫描线为 x 的每个值找到 y 的值来绘制一个椭圆。
对于一个普通的椭圆,公式很容易找到:y = Sqrt[b^2 - (b^2 x^2)/a^2]
但是当椭圆的轴旋转时,我永远无法弄清楚如何计算 y(可能还有 x 的范围)
x[t]= a Cos[t] Cos[psi] - b Sin[t] Sin[psi]
y[t]= b Cos[psi] Sin[t] + a Cos[t] Sin[psi]
其中 psi 是旋转角度,a和b是半轴。
参数 t 从 0 到 2 Pi。
或者,如果您更喜欢笛卡尔非参数形式:
(a x^2+b y^2) Cos[psi]^2 + (b x^2 +a y^2) Sin[psi]^2 + (a-b) x y Sin[2 psi]==1
这产生了 y[x] 的两个可能解,相当于非旋转情况下平方根的两个解:
y -> (-(Sqrt[2]*Sqrt[a + b - 2*a*b*x^2 + (-a + b)*Cos[2*psi]]) +
(-a + b)*x*Sin[2*psi]) / (2*(b*Cos[psi]^2 + a*Sin[psi]^2))
y -> (Sqrt[2]*Sqrt[a + b - 2*a*b*x^2 + (-a + b)*Cos[2*psi]] +
(-a + b)*x*Sin[2*psi])/ (2*(b*Cos[psi]^2 + a*Sin[psi]^2))
好吧,你要求它:)
这些功能给出:
x 的限制是:
LimitX= +/- Sqrt[a + b + (-a + b)*Cos[2*psi]]/(Sqrt[2]*Sqrt[a]*Sqrt[b])