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

时间:2017-02-02 10:35:57

标签: 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";

溶胶大小为零。

1 个答案:

答案 0 :(得分:4)

Clipper不允许线条(开放路径)剪切多边形(封闭路径)。但它确实允许多边形修剪线条。 (More info here.)

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