gpt4 book ai didi

algorithm - 将一些点映射到多边形

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:33:28 26 4
gpt4 key购买 nike

我的游戏中有以下 map ,

   x------------- 
y +3 +5 +2 -1 -2
| -1 +4 +2 +1 -1
| -2 +1 -1 -1 -1
| -1 -1 -2 -1 +2
| +2 +2 +2 +2 +4

我想将正点绘制为多边形,如下所示:

willingimg

我该怎么做,我应该使用什么算法/方式?

最佳答案

您还没有告诉我们您需要多边形的用途,所以我假设多边形应该将岛屿形象化,而不是其他。

您的值似乎是一张高度图。低于零的高度低于海平面。然后,您可以使用此信息绘制海平面的分段高度线:将 map 分割为正方形,其中 map 图 block 的中心是角点。对于一个端点高于海平面而另一个端点低于海平面的这些正方形的任何边缘,您可以通过线性插值找到高度为零的点。那么你要么没有,要么有两个,要么有四个这样的点。

如果您有两个点,请用一条线将它们连接起来。如果您有四个点,请查看相邻的方 block 并将它们连接起来,找出哪些对属于一起。您最终应该得到岛屿的等高线图:

A ragged archipelago

这是您添加了高度为 -1 的人工边框的示例。由于高度值不仅被视为岛屿/海洋标准,而且被视为物理高度值,因此会产生不均匀的海岸外观。如果你想让你的岛屿看起来更规则,你可以将所有负高度视为 -1 并将所有正高度视为 1。然后你将获得更规则的外观,其中所有点都位于正方形边缘的中间:

An archipelago of 45° angles

请注意,此方法不会创建多边形(因此我的回答可能完全没有捕获要点),因为这些线没有连接。您可以通过找到辅助网格的所有垂直和水平部分的交点来改进算法,然后沿着正方形漫游以构建闭合的多边形,然后您可以根据需要对其进行简化。

关于algorithm - 将一些点映射到多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23511656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com