1

我正在尝试使用 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";

溶液大小为零。

4

1 回答 1

4

Clipper 不允许线(开放路径)剪切多边形(闭合路径)。但是,它确实允许线被多边形剪裁。(更多信息在这里。)

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

于 2017-02-02T15:01:14.877 回答