4

我有一个点(纬度/经度)和一个以度数为单位的航向(真北),该点正沿着该点移动。我有许多静止的多边形(点在纬度/经度中定义),它们可能是凸面的,也可能不是凸面的。

我的问题是,如何计算与多边形最近的交点(如果有)。我看过一些关于光线追踪的令人困惑的帖子,但是当光线和多边形不在同一个平面上并且多边形必须是凸面时,它们似乎都与 3D 有关。

4

4 回答 4

1

听起来你应该能够做一个简单的二维线交叉点......

但是,我之前曾与 Lat/Long 合作过,并且知道它们并不完全适用于任何 2d 坐标系。

我会从一个通用的“IsPointInPolygon”函数开始,你可以通过谷歌搜索找到一百万个,然后在你的多边形上测试它,看看它有多好用。如果它们足够准确,请使用它。但有可能由于纬度/经度坐标的非正方形性质,您可能必须使用球面几何进行一些修改。

于 2009-03-09T22:55:36.503 回答
1

在 2D 中,计算相当简单......

您总是可以首先检查以确保光线的端点不在多边形内(因为在这种情况下那是交点)。

如果端点不在直线上,您可以与多边形的每个边界特征进行射线/线段相交,并使用最近找到的位置。处理凸/凹特征等。

于 2009-03-09T22:57:18.123 回答
1

使用此技术计算光线是否与多边形中的每个线段相交。

(我接受的)答案(我称之为h)中产生的比例因子是“相交点沿射线有多远”。您正在寻找 和 之间的01

如果有多个交叉点,那很好!如果您想要“第一个”,请使用具有最小值的那个h

于 2009-03-09T23:07:27.863 回答
0

此页面上的答案似乎是最准确的。

问题 1.E GodeGuru

于 2009-03-14T00:02:05.923 回答