2014-01-11 50 views
1

对于我的d3项目,我有一系列相邻的多边形,我想要计算一个新的多边形,它是外部的所有较小的多边形的边界放在一起。给定一组坐标点,删除内点(或找到点的外环)以形成多边形

我已经将几个连接的多边形的所有点合并成一个数组来创建一个大的多边形。但是这包括所有内部边缘以及外部边缘。我想删除这个合并的多边形的内边缘,以便我只有一个表示该区域的外边框的形状,但我找不到一个合适的算法来完成此操作。

我发现this,但它要求多边形的顶点已经明确知道;我所拥有的只是一套要点,外在和内在没有区别。

一旦我删除了生成的多边形的内部点,我想绘制一个与外部点的“基数”内插线。这就是为什么我必须保持点的完整性,而不是将多边形转换为弧,并使用类似topojson.mesh的东西!

下面是截图更清楚地解释:

Screenshot

所有顶点点绿色多边形(红色线的角落)被连接成点的一个阵列。我想弄清楚如何去除内点,然后我可以在剩下的外点上应用一个“基数”内插线。

+0

“点”是指黑点还是线段端点? – xan

+0

@ Clive等人我不知道为什么提出这个问题的人抱怨,如果我,写这个答案的人,并且大概知道这个问题的技术领域,是不是在抱怨? – VividD

+0

@ Qantas 94 Heavy,你可以请你重新解决这个问题,关闭的原因是不准确的?太多精致的问题会关闭。我在几段中回答了这个问题。这个问题很可能会得到更多的答案。 – VividD

回答

6

数学家会说,你需要计算凸包:

enter image description here

D3提供接口这样的算法。

文档是here。你必须仔细阅读。

有一个使用示例here。它与你想要的不一样,但你可以通过研究它来熟悉界面。

你也许可以在网上找到其他使用D3凸包算法的例子。

一旦你理解了文档和例子,你应该都已经习惯将新的知识应用于你的问题。

如果您还有其他代码集成问题,可以打开另一个问题。

希望这会有所帮助。

+0

感谢您的回答。我甚至不知道从哪里开始。非常失望,它已关闭。 – ridicter

+0

谢谢,这不涉及凸多边形,我猜这是显着更复杂。但它让我开始。 – ridicter

+0

在google上搜索polygon union,在这里以及在数学网站上搜索。 – VividD

相关问题