如何确定某个点是位于地球表面的多边形内部还是外部?
多边形的内部可以通过右手规则确定,即。当您在多边形周围走动时,多边形的内部位于右侧。
多边形可能
由于地球是一个球体,正常的光线穿越算法无法正常工作。
答案 0 :(得分:3)
事实上,正常的光线跟踪和缠绕规则方法在球体表面上工作得很好,只需稍加调整即可。
在球体表面上,“直线”是一个大圆,距离是以角度单位而不是米或英寸来衡量的。要从球体表面上的任意点绘制光线,只需通过该任意点和球体表面上的任何其他点形成一个大圆。为了保持数学清晰,请选择距离您正在测试的位置的pi / 2的第二个点。将通常的偶数规则应用于大圆和测试多边形。
缠绕规则也可以直接从平面中的直线转换为球体上的大圆(段)。
现在您只需要基本球面几何操作的Java实现。我在这方面没有任何建议,但我想互联网会有所帮助。数学从Mathworld开始。
另一种方法是将点和多边形从球体表面投影到平面 - 这就是地图投影的作用 - 内部的拓扑关系不会受到这种转换的影响。
哦,如果您的多边形描述了一个很棒的圆圈,你将不得不决定该做什么
答案 1 :(得分:2)
使用飞机而不是光线。由两个点定义的球体表面上的“线”是一个大圆弧(圆心,其中心是球体的中心),并且也包含在包含这两个点和球体中心的平面中
测试该点是否比“多边形”每个边缘的相应平面“更大”或“更小”,以确定它所在的“线”的哪一侧。