问题标签 [clipperlib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
423 浏览

polygon - !Clipper 库 线多边形使用偏移量 如何联合

我想要画线多边形并使用偏移但它联合在此处输入图像描述

0 投票
1 回答
1291 浏览

c++ - 线和多边形裁剪使用 Clipper 库 (c++) 返回空路径

我正在尝试使用 Clipper 库将多边形分割成一条线。剪裁执行后,返回空路径。有人可以建议正确的方法来做同样的事情。



溶液大小为零。

0 投票
1 回答
352 浏览

python - Clipper:裁剪打开的多边形时崩溃

我正在尝试使用开源多边形裁剪库 Clipper 来裁剪带有闭合多边形的开放多边形。

我正在使用 pyclipper 的 python 包装器。我的代码如下:

它似乎一直运行到 Execute 函数,然后它就退出而没有错误消息。我究竟做错了什么?

0 投票
1 回答
2304 浏览

c# - 对 C# 中的 Clipper 感到困惑

我正在 Unity 中创建一个 2D 游戏,它具有程序放置的图块。我想使用 Angus Johnson 的 Clipper 库(特别是联合函数)来简化碰撞几何,但我遇到了库返回空解决方案的问题,我不知道为什么。

作为参考,这里是我用来测试的多边形对撞机。 参考图像

这是我用来组合几何的函数的简化版本:

我通过调试发现的是第一个 Execute (用于联合)返回一个空的解决方案。我发现“Clipper”类中的“BuildResult”函数确实在运行,并且“m_PolyOuts”中有数据,但该列表中“OutRec”的“Pts”属性全部为空。我无法弄清楚这种情况发生在哪里,或者它们是否一开始就被设置了。

我确信这是正确的行为,我只是错误地使用了库,但我找不到任何文档或示例来解释我需要更改哪些内容才能使联合成功。

谢谢。

编辑:我把它缩小了一点。在 Clipper 类的“ExecuteInteral”期间,“Pts”列表不为空,直到“FixupOutPolygon”函数运行。之后,所有列表都为空。“JoinCommonEdges”也使几个列表为空,但不是全部。

0 投票
2 回答
543 浏览

c# - ClipperLib 用矩形裁剪多个正方形产生 1 个结果

我正在使用 ClipperLib 的 C# 版本的 v6.4.2。我有很多方格组成一个渔网。我也有一个长方形。我想得到一个结果,其中只有矩形内的正方形被返回并且部分重叠被剪裁。主题为绿色,剪辑为红色: 在此处输入图像描述

我得到的结果是棕色/灰色矩形,它只有一个多边形: 在此处输入图像描述

结果,我预计会有 15 个完整的正方形和 13 个裁剪的正方形。

这是我正在使用的代码:

运行上述代码大约需要 0.5 秒。因为结果看起来剪辑和主题被切换了,所以我已经切换了它们。结果是一样的,但现在只需要 0.1 秒。所以做了一些额外的事情。我认为这是合并产生的正方形。

我不希望结果合并。我怎样才能防止这种情况?还是我的代码有问题?

0 投票
0 回答
275 浏览

c# - 多边形上的同心偏移

我在 .NET/C# 中使用 Angus Johnson 的 Clipper 库,我想使用 ClipperOffset 类在多边形上做几个同心偏移。(http://www.angusj.com/delphi/clipper/documentation/Docs/Units/ClipperLib/Classes/ClipperOffset/_Body.htm)。

我想像袋鼠一样填充我的多边形(来自安格斯约翰逊的主页)。

我已经编写了一个函数来做到这一点,但是如果我调用它 10 次,它需要大量的计算时间,例如:

你知道更有效的方法吗?谢谢。

袋鼠

0 投票
1 回答
298 浏览

c# - Clipper Lib 总路径面积(复数)

我用谷歌搜索和搜索,没有找到与我需要的类似的东西。

Clipper Lib 提供了一个计算路径面积的函数:

double Area(Path path)

我找不到一种方法来缩放它以计算复杂多边形的面积(其中有孔的多边形等)。

意思是,我需要创建类似的东西:

double Area(Paths paths, PolyFillType FillType = PolyFillType.pftEvenOdd)

请有人启发我如何做到这一点?先感谢您

PS:我不能简单地求面积之和,因为这个复杂的多边形可能有洞。

0 投票
0 回答
408 浏览

c# - 让 Clipper 将多边形(带孔)合并为一个而不是两个多边形

我正在使用 Clipper 库合并多个多边形,并且遇到了一个主要问题。当一个多边形存在一个洞时,我想要一个封闭的路径来表示包括洞的多边形。该工具给我的是两条闭合路径(一条用于多边形的外部和内部轮廓,内部轮廓也是孔的轮廓)。

为了更好地说明,下面链接的图像取自另一个堆栈溢出问题(此处),基本上与我的问题相反。带有红色“X”的橙色多边形是我想要的——因为它只包含一个闭合路径。从那时起,裁剪器库似乎已经更新,现在这种类型的联合导致两条路径(划掉的右侧的橙色多边形)。

在此处查看多边形图像

有没有办法选择我缺少的以前的方法?

0 投票
0 回答
667 浏览

python - Pyclipper/Clipper:折线与多边形边缘的交点

如果我想剪辑均匀间隔的折线和闭合矩形多边形之间的交点,最外面的折线与矩形的边缘重合。

多段线与矩形多边形相交(绿色:剪辑,黑色:主题,红色:解决方案)

图片

当折线有规律地与矩形相交时,解决方案提供了假设的两个相交点。但是,如果折线与多边形的边缘重合,则解为空。有没有办法在边缘检索解决方案?

0 投票
1 回答
186 浏览

c# - 获取三角形内的所有点导致溢出

好吧,我在 Unity 中缺少 GraphicsPath (填充多边形,绘制它们,轮廓和实用程序通常具有形状),所以我正在自己实现它。好吧,我们也可以讨论哪个是最好的选择,但实际上,我更喜欢这个,因为我学到了很多东西。

想法如下,给定一个多边形,我们用 ClipperLib 做一个偏移多边形(向内和向外),然后用 LibTessDotNet 我们对其进行三角测量,输出:

...

绿色、蓝色和黄色像素是每个三角形的边。LibTessDotNet 为这个形状输出了 501 个三角形。

所以,感谢@SimpleVar ,我做到

实际上它可以工作,但不是很好。因为它会导致溢出(由于此代码使用大量 RAM,我必须使用 Process Explorer 终止 Unity 进程)。

我已经用断点调试了这个东西,但我不知道问题出在哪里。

我认为问题出在for (var x = pt1.x; x < pt2.x; ++x)for (int y = minY; y <= maxY; ++y)在下一个块中……但正如我所说,我无法像在 WinForms 中习惯的那样进行调试。当达到溢出时,Visual Studio 停止调试并且 Unity 崩溃,所以我有点卡住了。

我试图做一个 DotNetFiddle 做一个溢出,但我在这里什么都想不出来......所以......我不知道我能做些什么来改进代码。

向我解释您发现的所有内容都未优化,以及我可以采取哪些方法来改进我的主要目标。