C++ 使用裁剪器库(c+;+;)对直线和多边形进行裁剪将返回空路径

C++ 使用裁剪器库(c+;+;)对直线和多边形进行裁剪将返回空路径,c++,clipping,clipperlib,C++,Clipping,Clipperlib,我正在尝试使用Clipper库以直线分割多边形。执行剪裁后,它返回空路径。有人能提出正确的方法来做同样的事情吗 路径剪辑(2),soln; clip[0]Clipper不允许直线(开放路径)剪裁多边形(闭合路径)。但是,它确实允许多边形剪裁直线 此外,在您的代码中,两条路径(主题和剪辑)似乎都被添加为闭合路径,并且由于主题没有区域,因此与剪辑多边形的交点也将没有区域,因此为空解决方案。裁剪器不允许直线(开放路径)剪裁多边形(闭合路径)。但是,它确实允许多边形剪裁直线 此外,在代码中,两条路径(

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


路径剪辑(2),soln;

clip[0]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";