我已经尝试了一段时间,但没有找到答案。鉴于:椭圆高度椭圆宽度向量的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但这只是一个圆圈,而不是一个椭圆。
这是我第一次在此发布信息。对于此方面的任何帮助或建议,我将不胜感激。
一种相当简单的方法是用笛卡尔形式表示椭圆和向量
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度。这也可能适用于切线解决方案。因此,根据您的标准,该解决方案无效。
如果起点在椭圆内,则一种解决方案将提供您想要的结果,另一种解决方案将提供倒数。因此,只有一种解决方案有效。
如果向量通过椭圆,则两个解均有效,如果您忽略最远的解,则可以选择。