我有2个坐标点A,B,我想知道计算交点的公式(如果存在)。
让我们说我在拉特有一架飞机:42.68543 Lon:16.9880在196度时以430公里/小时的速度行驶,另一辆在Lat:36.72348 Lon:20.76236在269度时以670公里/小时的速度行驶
1)我想计算交点(如果存在)
2)如果存在交叉点,我需要知道每个工艺所需的估计时间和到交叉点的距离
你能帮我找一个关于如何找到它的Java示例吗?
答案 0 :(得分:0)
如果您有位置向量A=(xa,ya)
和B=(xb,yb)
以及相应的速度Va
和Vb
,那么您正在尝试解决A+s*Va=B+t*Vb
。这是任何坐标系的解决方案,但首先必须选择坐标系。
让我们首先为欧几里得空间解决它......
为每个组件x和y写出来。您现在在两个变量中有两个联立方程,可以求解s
和t
。如果s==t
(或“关闭”),它们将发生碰撞。当Va和Vb平行时,注意零除零,以及数值不稳定。
对于球面解,考虑在圆周上移动两个点,方程是相同的形式,尽管A和B将是角度,Va和Vb将是角速度。为了获得圆圈,可以随时瞬间计算欧几里得Va和Vb,这与欧几里得A和B一起(假设地球居中于0)告诉你你正在做什么平面,投射到这个平面以得到2D问题分别为每架飞机。