【发布时间】:2017-10-28 00:34:26
【问题描述】:
我在这里遇到的问题很难用语言来描述......所以我将使用图片! 一般来说,我遇到的问题如下:
假设我有多边形 A:
它与一个开放的多边形 B 在两点相交:
我可以用什么算法从这个交叉点形成两个封闭的多边形? (请注意,这里有三个解决方案,我正在搜索的一个突出显示)
最好的解决办法是
- 所有解决方案中最小的一个,因为:
- A 不包含 B
那么,关于在交叉点发生后如何生成 B(和新的 A)有什么建议吗?我是多边形数学(以及一般的 2D 形状交互)的新手,所以我不知道从哪里开始或从哪里看!
谢谢!
【问题讨论】:
-
我相信您正在寻找的是所谓的多边形切片,因此您也可以搜索它。请注意,理论上您最终可能会得到超过 2 个部分,具体取决于行。
-
@GrandmasterB 哇!那东西很激烈......而且我也很头疼!也许对我的问题有更好的解决方案。我想要做的是用点填充多边形A,并让用户通过绘制线条将它们分成区域(因此是未闭合的多边形B)......这是我能想到的唯一方法......也许我将不得不将用户限制为单个线条以简化操作?
-
哦,我知道了。一开始听起来很简单 :-) 您可能会四处寻找执行此操作的现有库。一些现有的 javascript 图形库可能具有此功能。
-
@GrandmasterB IDK...包含一个整个图形库来执行一项任务似乎有点极端...我会再研究一下!谢谢!
标签: javascript polygon clipping