我需要找到一条线(其原点是椭圆的中心)与二维椭圆相交的点...我可以轻松找到圆上的点,因为我知道角度 F 和圆的半径 (R):
x = x0 + R * cosF
y = y0 + R * sinF
然而我只是不知道我应该如何处理椭圆......我知道它的尺寸(A&B),但是找到参数T的方法是什么?!
x = x0 + A * cosT
y = y0 + B * sinT
据我了解,参数T(T角)距离F角并不远(在某些情况下约为+-15度),但我就是不知道如何计算它!
如果有好心人请帮我解决这个问题...
驻留在 0,0 处的椭圆的标准方程为:
1 = (x)^2 / (a) + (y)^2 / (b)
其中,a 是水平轴上直径的 1/2,b 是垂直轴上直径的 1/2。
你有一条线,假设有一个方程:
y = (m)(x - x0) + y0
那么,让我们即插即用吧!
1 = (x)^2 / (a) + (m(x - x0) + y0)^2 / (b)
1 = x^2 / a + (mx + (y0 - mx0))^2 / b
1 = x^2 / a + (m^2 * x^2 + 2mx*(y0 - mx0) + (y0 - mx0)^2) / b
1 = x^2 / a + (m^2 x^2) / b + (2mx*(y0 - mx0) + (y0^2 - 2y0mx0 + m^2*x0^2)) / b
1 = ((x^2 * b) / (a * b)) + ((m^2 * x^2 * a) / (a * b)) + (2mxy0 - 2m^2xx0)/b + (y0^2 - 2y0mx0 + m^2*x0^2)/b
1 = ((bx^2 + am^2x^2)/(ab)) + (x*(2my0 - 2m^2x0))/b + (y0^2 - 2y0mx0 + m^2*x0^2)/b
0 = x^2*((b + a*m^2)/(ab)) + x*((2my0 - 2m^2x0)/b) + (((y0^2 - 2y0mx0 + m^2*x0^2)/b) - 1)
最后一个方程遵循标准二次方程的形式。
因此,只需使用二次公式即可:
((b + a*m^2)/(ab))
((2my0 - 2m^2x0)/b)
and
(((y0^2 - 2y0mx0 + m^2*x0^2)/b) - 1)
获取交叉点处的 X 值;然后,将这些值代入原始线方程以获得 Y 值。
祝你好运!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)