문제가 있습니다. 컨투어 또는 닫힌 그림을 그릴 수있는 x 및 y 좌표 집합이 있습니다. 그러나 프로그램 내에서 작업하는 동안 좌표 순서가 변경 될 수 있습니다. 이제 플롯이 그려지면 커브가 올바르게 그려지지 않습니다.윤곽선 정렬 MATLAB 그리기
그림은 내 코드에서 아래에 주어진다 : 두 개의 플롯 코드에 표시됩니다
clc;
clear all
close all
xi = [86.7342,186.4808,237.0912,194.8340,84.2774,39.5633,86.7342];
yi = [18.2518,18.2518,102.3394,176.4611,172.1010,88.6363,18.2518];
subplot(1,2,1),plot(xi,yi);
title('original points contour');
xii=xi; yii=yi;
%Suppose the points are interchanged
t=0;
t=xii(3); xii(3)=xii(4); xii(4)=t;
t=yii(3); yii(3)=yii(4); yii(4)=t;
subplot(1,2,2),plot(xii,yii);
title('Redrawn contour with the points exchanged');
%I get this contour.
.
요소의 순서에 관계없이 올바른 윤곽을 다시 그릴 수 있어야합니다. 정렬 알고리즘을 사용해야합니까? 교차점없이 잘 닫은 윤곽선을 만들기 위해 점의 순서를 어떻게 결정할 수 있습니까? 미리 감사드립니다.
참고 : 작업 중에 좌표 내 설정을 가정이된다 :
xiiii =[40,200,210,230,50,20,40]
yiiii =[50,60,160,80,120,30,50]
figure();
plot(xiiii,yiiii,'+r'); hold on;
% I need to somehow change the matrices in such a way so as to form
%an non-overlapping closed surface.
%after manipulation I get should get this matrices
xiii =[40,200,230,210,50,20,40];
yiii =[50,60,80,160,120,30,50];
plot(xiii,yiii,'+b');
hold off;
%Notice the difference between the two plots. I require the 2nd plot.
나는이 예제는 내 질문에 명확하게되기를 바랍니다. 다시 한 번 감사드립니다.
첫 번째 단계에서 인덱스 벡터를 저장하려고 했습니까? – NKN
아니요. 하지만 그렇게해도 내 문제는 해결되지 않을 것입니다. 더 명확하게하기 위해 나는이 질문을 편집 중입니다. 아마 그때 그것은 더 분명해질 것입니다. – roni
내 편집 된 질문을 참조하십시오. – roni