Unexpected output form intersect (polyxpoly)
    조회 수: 6 (최근 30일)
  
       이전 댓글 표시
    
I am getting an unexpected output when I try to apply intersect to the following two polygons:
A = [2  6 4 2 -1 0; 
     0 -1 2 4  6 2]; 
B = [0 6 6 0; 
     0 0 6 6];
C = intersect(A, B)
Namely, C contains the point [-1; 6], which it should not contain. What baffles me is that [6; -1] is correctly excluded, even though the two shapes are symmetric about the positive diagonal. The same mistake happens if I initialize A and B using the polyshape command:
A = polyshape([2 6 4 2 -1 0], [0 -1 2 4 6 2]);
B = polyshape([0 6 6 0], [0 0 6 6]);
Does anybody have an idea what is wrong?
댓글 수: 0
답변 (1개)
  Turlough Hughes
      
 2020년 1월 26일
        When you're using intersect to do what you have described you need to ensure you have inputs of either two polyshapes, a polyvec, or a polyshape and a linsegment as described here. Your input was two arrays and so you ended up doing a set intersection which has it's own seperate documention.
Try the following:
A = polyshape([2 6 4 2 -1 0], [0 -1 2 4 6 2]);
B = polyshape([0 6 6 0], [0 0 6 6]);
C = intersect(A,B);
figure(), plot(A)
hold on, plot(B)
plot(C,'FaceAlpha',0,'LineWidth',3,'EdgeColor','red')
댓글 수: 2
참고 항목
카테고리
				Help Center 및 File Exchange에서 Elementary Polygons에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

