实际上,正常的光线追踪和缠绕规则方法在球体表面上工作得很好,并且进行了少许调整。
在球体的表面上,“直线”是一个大圆,并且距离以角度单位而不是米或英寸为单位。要从球体表面上的任意点绘制射线,只需在该球体表面上的任意点和任何其他点上形成一个大圆。为了保持数学的清洁度,请选择第二个点pi / 2远离要测试的位置。将通常的奇数规则应用于大圆和测试多边形。
缠绕规则还可以将平面中的直线直接转换为球体上的大圆(段)。
现在,您所需要的只是基本球形几何运算的Java实现。在这方面,我没有任何建议,但我想互联网会有所帮助。对于数学,请从Mathworld开始。
另一种方法是将点和多边形从球体表面投影到平面上(这就是地图投影的作用),内部空间的拓扑关系不会受到这种转换的影响。
哦,如果您的多边形描述了一个大圆,那么您必须决定要怎么做
| 归档时间: |
|
| 查看次数: |
3882 次 |
| 最近记录: |