给定向量的椭圆边缘的距离

问题描述 投票:1回答:1

我已经尝试了一段时间,但没有找到答案。鉴于:椭圆高度椭圆宽度向量的Xposition向量的Ypostion向量的方向。

找到到圆边的距离

下面是一个简单的图:Distance to the edge of a circle

[我碰到了这篇文章:Calculate Point collision between a point of a given vector and the edge of a Circle但这只是一个圆圈,而不是一个椭圆。

这是我第一次在此发布信息。对于此方面的任何帮助或建议,我将不胜感激。

math vector ellipse gml
1个回答
1
投票

一种相当简单的方法是用笛卡尔形式表示椭圆和向量

x ^ 2 / a ^ 2 + y ^ 2 / b ^ 2 = 1,其中a&b是半长轴(宽度的一半)和半短轴(高度的一半)的长度以及中心椭圆假定为(0,0)

y-ypos = m(x-xpos)其中,xpos和ypos是向量的位置,m是斜率,即与x轴所成角度(方向)的余弦值。

将它们一起解决以得到截距并使用毕达哥拉斯计算距离。

这假定椭圆的中心在(0,0),并且轴平行于x和y坐标轴。如果不是这种情况,那么您将需要一个更通用的椭圆方程式,该方程式将详细讨论here in Wikipedia

正如wierdan在他的评论中指出,您可以获得0.1或2个解决方案。

如果向量在椭圆之外开始并完全错过,则为0。

1,如果向量是椭圆的切线。

2,如果矢量通过椭圆或它的起点在椭圆内部。

在有两个解的情况下,0,1或2可能有效

如果向量方向指向椭圆,则解为互逆向量,其中一个指向相反的方向180度。这也可能适用于切线解决方案。因此,根据您的标准,该解决方案无效。

如果起点在椭圆内,则一种解决方案将提供您想要的结果,另一种解决方案将提供倒数。因此,只有一种解决方案有效。

如果向量通过椭圆,则两个解均有效,如果您忽略最远的解,则可以选择。

© www.soinside.com 2019 - 2024. All rights reserved.