2017-02-02 9 views
1

클리퍼 라이브러리를 사용하여 선으로 다각형을 분할하려고합니다. 클리핑 실행 후 빈 경로를 반환합니다. 누군가가 똑같은 일을 할 수있는 올바른 방법을 제안 할 수 있습니까? 선 및 다각형 클리핑이 클리퍼 라이브러리 (C++)를 사용하여 빈 경로를 반환합니다.


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 크기는 0이다.

답변

3

클리퍼에서는 다각형 (닫힌 패스)을 클리핑하는 선 (열린 패스)을 허용하지 않습니다. 그러나 선이 다각형으로 잘릴 수 있습니다. (More info here.)

또한 코드에서 경로 (제목과 클립)는 모두 닫힌 경로로 추가되는 것으로 보이고 피사체에는 영역이 없으므로 클립 폴리곤과 교차하는 영역에도 영역이 없으므로 빈 솔루션입니다.