当前位置: 首页 > 知识库问答 >
问题:

将任意数目的多边形组合在一起

孙震博
2023-03-14

我有一个任意数目的多边形(在本例中是六边形),它们是随机排列的,但它们都在接触另一个六边形。

每个单独的十六进制有6个x,y顶点。顶点以所有的四边形而闻名。

谁能给我指出一个算法的方向,将所有的四边形组合成一个单一的多边形?本质上,我只是在寻找一个函数,它可以吐出一个顶点位置数组,这些顶点位置是以一种方式排列的,当从一个到下一个画线时,它就形成了多边形。

    null

有什么函数可以做这样的事情吗?我是在正确的轨道上还是有更好更有效的方法?

共有1个答案

缑兴贤
2023-03-14

我会这样做:

  1. 列出所有边。边由两对坐标定义。
  2. 如果任何边多次出现,请删除该边的所有实例。
  3. 选择任意边,然后从该边选择其中一个点。
  4. 将该点放在数组中。
  5. 跟随当前边,并将另一个点放入数组中。
  6. 删除您刚才跟踪的边。
  7. 然后找到另一边,该另一边的点与数组中的最后一个点相同。这样的一面只会有一个。如果没有,您就完成了。
  8. 返回步骤5。

您现在应该有一个点数组,这些点按照顺序组成您想要的形状。

 类似资料:
  • 我试图从顶点位置创建一组多边形,保存在X,Y格式。 下面是我的数据的一个例子——每行代表一个多边形的顶点。多边形是正方形 我正在使用,因此我的数据需要在列表中。所以我创建了一个循环来尝试从矩阵中将我的数据转换为列表格式。 我创建了一个循环,遵循我在这个网站上的其他一些问题中找到的代码。我突破了每一步,试图理解为什么我只有一个多边形作为输出,即使我有2组点。 你能帮我理解我如何调整代码写出两个多边形

  • 我在传单地图上有一组无组织的点,在我的实现中,这些点表示Minecraftarium.com/map上Minecraftarium.com/map上地图上的领土节点。目前,我的实现只获取点,并使用传单在点周围画一个圆来大致指示控制区域。 然而,这有点难看,也不代表期望的最终结果,即从给定一组数据的边缘点绘制多边形区域。然而,由于这些点的无组织性质,我没有简单的方法来宣布这些点上的“边缘点”,因为它

  • 问题内容: 我正在尝试绘制这样的多边形: 我希望得到以下输出: 为什么仍然是零?还有另一种方法将填充的多边形绘制到数组吗? 问题答案: 这是一个奇怪的结果。我发现,如果您颠倒了点的顺序,则会绘制出完整的图形。换一种说法: 这是一个测试程序: 例子:

  • 我是新来的,对C#来说也是新来的,我希望有一个简单的问题要解决。 (我使用gmaps.net for winforms来实现这一点,但也将通过web API maps版本使用该方法)。 我们的数据库中有一个zipcodes和Area的数据库。每个区域包含多个Zipcode。每个zipcode都有一系列坐标,可以为该zipcode创建一个google maps多边形。 目前,如果我们想在地图上显示我

  • 我有一对(封闭的)多边形,每个多边形被定义为一个点序列(顶点)。每个多边形都代表一块土地,由一条小河分开,所以溪流在两个多边形之间形成一个狭窄的缝隙。 我正在寻找一种算法,通过将两个多边形连接成一个连接的多边形来识别和消除间隙。 下图显示了一个示例,其中原始多边形为绿色和红色,生成的多边形显示为黄色。 到目前为止,我已经能够做到以下几点: 对于多边形A中的每条边,找到多边形B中最近的顶点。 找到多

  • 我想将光栅数据聚合到自定义形状文件中的每个多边形。 在这种情况下,我想获得撒哈拉以南非洲次国家区域城市化的平均程度。 我的sf如下所示: 或绘制: 另一方面,光栅数据采用以下形式: 这些比整个星球所需的要细得多。为了加速计算,我首先聚合光栅,然后将其转换为shapefile,剩余的每个光栅像素都转换为shapefile中的点几何形状。然后,这个shapefile可以聚合到我的区域边界。诚然,这不是