【问题标题】:I got points on a map.Getting all independent inner polygons that are formed?我在地图上得到了点。得到所有形成的独立内部多边形?
【发布时间】:2016-10-09 13:10:16
【问题描述】:

我在地图上得到了点和连接这些点的线。

如何获得所有形成的独立内部多边形?

链接的图片描述了问题。

http://i.imgur.com/0LdA3ji.jpg

我假设我需要一个树搜索算法来枚举树结构中的所有点和连接线,然后搜索循环,但这项工作有点超出我的想象。

在理想情况下,示例应该是 C#。)


我找到了:

Finding all cycles in undirected graphs

但它不标记独立的多边形。它会找到所有可能的多边形,甚至是重叠的多边形。


我正在使用谷歌地图。用例是:我检测地图上的点击并绘制点。我检测点击点,然后得到点之间的线。现在我需要从线和点自动生成多边形。当然我可以画多边形。我只是不知道哪些(什么坐标 - 或者更确切地说:为多边形选择什么点)

【问题讨论】:

标签: c# google-maps


【解决方案1】:

我实际上没有图形方面的经验,也没有在你找到多边形后如何实际着色的经验,但假设:

  1. 您自己拥有多边形。
  2. 它们没有明显重叠或任何其他奇怪的行为。

那么着色伪代码可以是这样的:

while listOfPolygons is not empty
    temp <- find smallest polygon in listOfPolygons 
    colour temp
    remove from listOfPolygons all polygons containing temp
    remove temp from listOfPolygons 

请注意,查找包含多边形的部分可能很棘手。

编辑:

可以通过检查 A 的任何角(顶点?)是否位于 B 内部来检查多边形 A 是否在多边形 B 中。

【讨论】:

  • 我想我得到了查找所有多边形的代码(更新中的链接)。我也认为这是解决方案。我将把这个问题留一会儿。谢谢 :) 它们只是在较小的多边形是较大多边形的一部分的意义上重叠。
  • 嗯 .. 我想知道如果两个多边形并排并共享一个顶点,这是否可行。我不这么认为。
  • 两个有共同边的多边形(图片中的黄色和绿色)没有位于另一个边的任何角...
猜你喜欢
  • 2015-12-22
  • 1970-01-01
  • 2015-03-06
  • 1970-01-01
  • 1970-01-01
  • 2017-04-28
  • 1970-01-01
  • 1970-01-01
  • 2010-10-28
相关资源
最近更新 更多