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

标签 c++ clipping clipperlib

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


Paths clip(2),soln;
clip[0] << IntPoint(-264,-210) << IntPoint(650,-209);
Path sub = clip[0];
Path poly << IntPoint(531,49) << IntPoint(-21,49) << IntPoint(-970,-961) << IntPoint(-945,-1019) << IntPoint(1045,-1071) ;
Clipper c;
 c.AddPath(poly,ptSubject,true);
    c.AddPath(sub,ptClip,true);
    c.Execute(ctIntersection,soln,pftNonZero, pftNonZero);
   std::cout << soln.size() << "soln size";

溶液大小为零。

最佳答案

Clipper 不允许直线(开放路径)剪裁多边形(闭合路径)。然而,它确实允许线条被多边形剪切。 (More info here.)

此外,在您的代码中,两个路径(主题和剪辑)似乎都被添加为闭合路径,并且由于主题没有区域,因此它与剪辑多边形的交集也将没有区域,因此是空的解决方案.

关于c++ - 使用 Clipper 库 (c++) 进行线和多边形裁剪返回空路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41999919/

相关文章:

c++ - 通过 RS232 串行端口从条码扫描器读取异步数据

c++ - 三维静态常量数组的初始化

c++ - 在二维数组的矩形区域内快速找到最大值的方法

css - HTML 5 屏蔽和裁剪一张图像

c++ - 使用 Angus Johnsons 的 Clipper lib 中的 OffsetPolygon 时多边形中的奇数 "notches"

c++ - 您可以在不同的文件中编写 OpenGL 着色器,然后将其链接到程序吗?

opengl - 为什么剪裁应该在 CCS 中完成,而不是 NDCS

Delphi SelectClipRGN 隐藏绘制位图

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