gpt4 book ai didi

c++ - 如何将负多边形与内部负多边形连接起来?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:24:46 27 4
gpt4 key购买 nike

我目前正在开发一个私有(private)项目,该项目依赖于使用 Boost C++ 库对多边形进行的一些操作。

我目前正在尝试使用内多边形/负多边形概念。

我现在需要做的是连接三个多边形,其中两个具有正(逆时针)外多边形和负(顺时针)内多边形。

第三个是负多边形,一个新的多边形对象,面积为负 - 指向顺时针方向。这就是我不确定如何处理这种情况的关键。

这是这三个多边形的图片。连接左上多边形和右下多边形的中间一个是负多边形。

Polygons including the negative one

现在我想做的是通过 union 函数连接所有三个多边形。我期望 union 做的是切掉多边形 1 和 3 的正部分(正多边形)并返回 1 和 3 的剩余两个多边形。

我实际得到的是未触及的多边形 1 和 3,因为不会有负多边形 2。

任何帮助将不胜感激。

编辑:

我需要得到的是一个 vector ,而不是位图或图片或其他任何东西。这些图片只是用来更好地形象化我所拥有的和我需要的。

这三个多边形实际上不过是 x 和 y 点的 vector 。

这是我期望所有三个多边形合并的正确结果的图片:

Edit2:修正了结果

Result

最佳答案

您希望 union 如何运作? Usually a union of polygons 1 and 2 would result in polygon 3 ,但我怀疑对于您的用例,您希望它产生多边形 4。如果是这种情况,您可以简单地对所有顺时针路径进行并集,然后对逆时针路径进行并集,然后取前者的差值从后者。如果您希望并集产生多边形 3,那么我认为没有一种一致的方法可以满足您的需求。

关于c++ - 如何将负多边形与内部负多边形连接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13727552/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com