线和多边形裁剪使用 Clipper 库 (c++) 返回空路径
Posted
技术标签:
【中文标题】线和多边形裁剪使用 Clipper 库 (c++) 返回空路径【英文标题】:Line and Polygon clipping returns empty Paths using Clipper library (c++) 【发布时间】:2017-06-19 09:19:55 【问题描述】:我正在尝试使用 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";
soln 大小为零。
【问题讨论】:
【参考方案1】:Clipper 不允许线(开放路径)剪切多边形(封闭路径)。但是,它确实允许线被多边形剪裁。 (More info here.)
此外,在您的代码中,两条路径(主题和剪辑)似乎都添加为封闭路径,并且由于主题没有区域,因此与剪辑多边形的交集也将没有区域,因此为空解决方案.
【讨论】:
以上是关于线和多边形裁剪使用 Clipper 库 (c++) 返回空路径的主要内容,如果未能解决你的问题,请参考以下文章