问题标签 [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 回答
396 浏览

intersection - 是否可以使用 Clipper 检查多边形是否与自身相交?

我可以使用 Clipper 检查我的多边形轮廓是否与自身相交(如果它是复杂多边形还是简单多边形)?

我知道它不会使多边形无效,但就我而言,我想避免自相交多边形。

0 投票
2 回答
4880 浏览

python - 在 python 中使用 Clipper lib 生成多边形偏移

我想使用 Clipper lib ( http://www.angusj.com/delphi/clipper.php ) 在封闭的多边形中产生偏移。

因为,我使用的是 python 2.7,所以我使用 pyclipper ( https://pypi.python.org/pypi/pyclipper ) 来做同样的事情。

不幸的是,我无法从 C++ 中裁剪器的多边形偏移示例中理解:

在 python 中实现相同的。

我只看到了 pyclipper 的一个示例(剪辑,而不是偏移):

不幸的是,我不是一个经验丰富的程序员,我无法继续前进。

请在这方面帮助我。

提前致谢。

0 投票
3 回答
579 浏览

c# - 合并接触多边形给出错误结果

我正在尝试编写一段代码,它给出一个多边形列表(定义为 IntPoints 列表的列表)检查它们中的任何一个是否接触,如果是,则将它们合并为一个多边形。为了做到这一点,我已经尝试了以下两种方法:

现在这两个都很容易将多边形合并在一起,但是它们有点过分,因为任何多边形的开放空间都被忽略了,开放区域被简单地组合成一个多边形,这意味着像这样: 两个没有接触的多边形合并成一个没有任何意义或生命的正方形,真是太恐怖了

发生。现在这显然是错误的,因为这两个多边形不相互接触。两种方法都会出现相同的结果。结果将与输入相同。知道如何解决这个问题吗?解决方案不必使用裁剪器库(我没有嫁给它),但我确实需要使用由点列表定义的多边形的东西输入是 List> 其中 Intpoint 只是一个包含 x 的结构和一个。

编辑我注意到当另一个多边形内部没有多边形时也会出现此问题,因此解决方案始终是“填充”编辑编辑:这里也是输入可能是什么样的示例

这个描述的输入是一个正方形,里面有一个洞。

0 投票
0 回答
231 浏览

c# - 合并曲面上的多边形

我尝试了用于合并要导入 Google 地球的多边形 (c#) 的剪裁器库。它适用于两个圆的平面样本,但使用经度和纬度作为 X 和 Y 存在两个问题:

  1. Clipper 仅支持 long as 数据类型(您可以在将值传递给 Clipper 之前使用乘数来解决这个问题 - 已经有一个问题,但它没有解决第二点
  2. Clipper 假设表面是平坦的,因此输出坐标不在预期的位置。不可能只将 X 和 Y 视为经度和纬度并将值 x 添加到它们。它可能在赤道起作用,但在较高的北方将相同的经度值添加到会导致更短的距离。

在此处输入图像描述

我想知道是否已经有该场景的实现/库。

更新:由于已请求使用的源代码,我创建了一个包含相关代码的小示例应用程序:

更新 2:圈子的创建方式实际上存在错误。通过更正,圆圈得到正确创建和合并: 在此处输入图像描述

我发现我可以使用墨卡托投影将上图中的圆点投影到平面上。然后可以使用 Clipper 进行合并。最后,所有点都再次投影到球体上(墨卡托投影的反面)。

这将是一种解决方法(将对其进行更深入的测试)。所以这个问题已经得到了回答,但如果有其他解决方案较少的解决方法会很有趣。

0 投票
1 回答
472 浏览

c# - 将 Clipper 多边形联合的结果用于具有内部边界的 Google 地球 KML

我想将多边形合并到一个可以有洞的区域。Clipper 可以做到这一点,但是当我在 Google Earth 中使用两个生成的多边形时,问题是 Google Earth 分别处理这些多边形并将它们相互叠加。在 KML 中,可以为多边形创建 OuterBoundary 和 InnerBoundary 元素。问题是,通过 Clipper 结果,您如何知道什么是内部边界和什么是外部边界。另一件要提的事情:即使可以以某种方式确定,在实际的 Clipper 联合调用中,我使用了数千个圆形多边形。所以有多个带有孔的单独区域。 在此处输入图像描述 合并后: 在此处输入图像描述

这是具有四个简单形状的代码:

更新:在 KML 中总是有两组多边形列表,OuterBoundaries 和 InnerBoundaries。我设法递归解析多边形并检查每个最外面的多边形是否有内部多边形。最外面的内部多边形是 InnerBoundary。所有其他内部多边形再次作为 OuterBoundary 多边形开始。一旦我发现了非常大的多边形集的一些问题,我将立即发布代码。

0 投票
0 回答
162 浏览

compilation - 库搜索后未定义的符号 - CLIPPER

我试图编译一个用 Clipper 5.2 编写的应用程序。它遇到了一个错误,我认为这是包含库。我链接的那一刻,它显示以下错误:

我正在使用:rtlink fi MyApp

错误编译 - Clipper 我导入库的代码段:

有知识剪辑师的人可以帮助我吗?

0 投票
1 回答
1320 浏览

c# - 使用 Clipper 库的平行线

我正在使用CLIPPER库来偏移线并尝试制作平行线。

结果是附件中的正确图像。我需要平行线而不是“围绕”主线的偏移线。

有谁知道在 Clipper 中是否有可能,或者可能有人知道如何过滤结果点以删除不必要的?

在此处输入图像描述

0 投票
1 回答
397 浏览

geometry - Clipper 多边形偏移和直线顶点

我正在尝试使用裁剪器偏移多边形,并且我需要将原始多边形的所有顶点镜像到偏移多边形中。问题是,当你通过一个顶点在直线上的多边形时,你会得到一个在直线上没有任何顶点的多边形,正如我试图在这张图中说明的那样:

多边形偏移顶点

有没有人知道修改 Clipper 行为的方法,或者可以为我做这件事的不同库?

谢谢

0 投票
1 回答
1518 浏览

c++ - 如何使用 Clipper 确定两个多边形是否相交?

我正在使用 Clipper 并想确定两个(多)多边形是否相交。

我的期望是图书馆会有一种很好的、​​抽象的方式来提出这个问题,但似乎没有。

我认为该Area()方法可能有用,但它仅适用于PathExecute()方法返回Paths

我已经构建了以下 M(几乎)WE 来演示该问题:

0 投票
1 回答
89 浏览

javascript - 使线条跟随形状的轮廓

我正在开发一个基于矢量数据并使用各种布尔运算的应用程序。对于这些布尔运算,我使用了一个名为clipper的库。现在我需要进行一个向量操作,但我不确定如何在 Clipper 中进行操作。我有一条由两个点组成的直线,它们总是必须留在一个封闭的多边形内。我的意思是下。绿线是封闭的多边形,红线是直线。当红线在绿色多边形之外时,它需要跟随绿色多边形的轮廓。

我不确定如何存档。关于如何使用 Clipper 或其他库执行此操作的任何建议都会非常有帮助!