我有三个点在地球表面。我想确定其中一个点是否位于连接其他两个点的一条线的左侧或右侧,当沿该线向某个方向行进时。
所以,参数是:
globe(x,y,z,radius)
journey_start(x,y,z)
journey_end(x,y,z)
点(x,y,z)
到目前为止,我的理由让我知道了:
地球起源,旅程开始和结束是一个大圆圈上的三个点并描述一个平面。我想知道另一个点是高于还是低于这个平面。
但我没有设法把它扩展到一个等式。
我该如何解决这个问题?
答案 0 :(得分:2)
将矢量S和E定义为从地球中心到journey_start和journey_end的矢量。它们的交叉积是S和E所在平面的法线N.这个平面当然将地球划分为两个半球,分别对应你的左右两侧。随后可以使用从中心到第三点的向量计算此法线的内积。它是正(右),负(左)或零(在同一个大圆上)
答案 1 :(得分:1)
找到两点和中心所在的平面,穿过第三点的平行平面,两个平面之间的偏移,两个点和中心的交叉积,以及是否方向偏移量与叉积的方向相同。