问题标签 [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.
intersection - 是否可以使用 Clipper 检查多边形是否与自身相交?
我可以使用 Clipper 检查我的多边形轮廓是否与自身相交(如果它是复杂多边形还是简单多边形)?
我知道它不会使多边形无效,但就我而言,我想避免自相交多边形。
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 的一个示例(剪辑,而不是偏移):
不幸的是,我不是一个经验丰富的程序员,我无法继续前进。
请在这方面帮助我。
提前致谢。
c# - 合并接触多边形给出错误结果
我正在尝试编写一段代码,它给出一个多边形列表(定义为 IntPoints 列表的列表)检查它们中的任何一个是否接触,如果是,则将它们合并为一个多边形。为了做到这一点,我已经尝试了以下两种方法:
和
现在这两个都很容易将多边形合并在一起,但是它们有点过分,因为任何多边形的开放空间都被忽略了,开放区域被简单地组合成一个多边形,这意味着像这样:
发生。现在这显然是错误的,因为这两个多边形不相互接触。两种方法都会出现相同的结果。结果将与输入相同。知道如何解决这个问题吗?解决方案不必使用裁剪器库(我没有嫁给它),但我确实需要使用由点列表定义的多边形的东西输入是 List> 其中 Intpoint 只是一个包含 x 的结构和一个。
编辑我注意到当另一个多边形内部没有多边形时也会出现此问题,因此解决方案始终是“填充”编辑编辑:这里也是输入可能是什么样的示例
这个描述的输入是一个正方形,里面有一个洞。
c# - 合并曲面上的多边形
我尝试了用于合并要导入 Google 地球的多边形 (c#) 的剪裁器库。它适用于两个圆的平面样本,但使用经度和纬度作为 X 和 Y 存在两个问题:
- Clipper 仅支持 long as 数据类型(您可以在将值传递给 Clipper 之前使用乘数来解决这个问题 - 已经有一个问题,但它没有解决第二点
- Clipper 假设表面是平坦的,因此输出坐标不在预期的位置。不可能只将 X 和 Y 视为经度和纬度并将值 x 添加到它们。它可能在赤道起作用,但在较高的北方将相同的经度值添加到会导致更短的距离。
我想知道是否已经有该场景的实现/库。
更新:由于已请求使用的源代码,我创建了一个包含相关代码的小示例应用程序:
更新 2:圈子的创建方式实际上存在错误。通过更正,圆圈得到正确创建和合并:
我发现我可以使用墨卡托投影将上图中的圆点投影到平面上。然后可以使用 Clipper 进行合并。最后,所有点都再次投影到球体上(墨卡托投影的反面)。
这将是一种解决方法(将对其进行更深入的测试)。所以这个问题已经得到了回答,但如果有其他解决方案较少的解决方法会很有趣。
c# - 将 Clipper 多边形联合的结果用于具有内部边界的 Google 地球 KML
我想将多边形合并到一个可以有洞的区域。Clipper 可以做到这一点,但是当我在 Google Earth 中使用两个生成的多边形时,问题是 Google Earth 分别处理这些多边形并将它们相互叠加。在 KML 中,可以为多边形创建 OuterBoundary 和 InnerBoundary 元素。问题是,通过 Clipper 结果,您如何知道什么是内部边界和什么是外部边界。另一件要提的事情:即使可以以某种方式确定,在实际的 Clipper 联合调用中,我使用了数千个圆形多边形。所以有多个带有孔的单独区域。 合并后:
这是具有四个简单形状的代码:
更新:在 KML 中总是有两组多边形列表,OuterBoundaries 和 InnerBoundaries。我设法递归解析多边形并检查每个最外面的多边形是否有内部多边形。最外面的内部多边形是 InnerBoundary。所有其他内部多边形再次作为 OuterBoundary 多边形开始。一旦我发现了非常大的多边形集的一些问题,我将立即发布代码。
c# - 使用 Clipper 库的平行线
我正在使用CLIPPER库来偏移线并尝试制作平行线。
结果是附件中的正确图像。我需要平行线而不是“围绕”主线的偏移线。
有谁知道在 Clipper 中是否有可能,或者可能有人知道如何过滤结果点以删除不必要的?
geometry - Clipper 多边形偏移和直线顶点
我正在尝试使用裁剪器偏移多边形,并且我需要将原始多边形的所有顶点镜像到偏移多边形中。问题是,当你通过一个顶点在直线上的多边形时,你会得到一个在直线上没有任何顶点的多边形,正如我试图在这张图中说明的那样:
多边形偏移顶点
有没有人知道修改 Clipper 行为的方法,或者可以为我做这件事的不同库?
谢谢
c++ - 如何使用 Clipper 确定两个多边形是否相交?
我正在使用 Clipper 并想确定两个(多)多边形是否相交。
我的期望是图书馆会有一种很好的、抽象的方式来提出这个问题,但似乎没有。
我认为该Area()
方法可能有用,但它仅适用于Path
该Execute()
方法返回Paths
。
我已经构建了以下 M(几乎)WE 来演示该问题: