【发布时间】:2015-01-05 01:21:34
【问题描述】:
对不起,我在措辞这个问题时遇到了很多问题。
我不知道应该使用什么数据结构(或数据结构的组合)来存储相互接壤的多边形排列(就像任何现实世界的地图一样)。
我应该澄清一下:我的意思是让一个点以固定速度在这些多边形的地图(景观)中移动。整个景观都被多边形覆盖——没有空间是未分类的;地图中的每个点都属于某个多边形。这意味着所有多边形在所有边上都与另一个多边形或地图边缘接壤。地图是有界的,但理想情况下,地图有多大或表示多少个多边形都无关紧要。每个多边形都有一个名称(这很重要,因为每个点现在至少属于两个命名的多边形)。在地图中移动的点应该始终知道它所在的多边形的名称,并且当它从一个多边形越过边界进入另一个多边形时,也应该通知该点。 (如果需要任何其他说明,请发表评论。)
有没有公认的方法来做到这一点?
--编辑--
多边形是固定的。所有点和边都需要预先硬编码。点和边永远不会发生不可预测或随机变化(如果它们发生变化,那将是对一个不常见的固定事件的响应)。
【问题讨论】:
-
多边形是提前固定好的吗?地图有多大?多边形可以改变吗?另外,多边形一定是凸的吗?
-
如果是第一人称风景,你可能想看看类似this approach
-
可以认为是多边形的二维图。它也不需要以图形方式表示。该点只需要知道它的 x 和 y 位置变量告诉它它相对于存储的多边形在哪里。虽然图形表示可以帮助我作为人类理解模拟,但就这一点而言,它不应该是必要的。
标签: data-structures computational-geometry