2014-04-09 3 views
-1

하나의 객체가있는 두 개의 바이너리 원이 있습니다. 서로 연결하지 않습니다. 나는 원을 채우는 색을 마쳤다. 이제는 서로 연결되어 있지 않은 두 개의 동그라미에 같은 색을 채워 넣고 싶습니다. 이것은 내 코드입니다. 그러나 그것은 효과가있다. 나 좀 도와 줄 수있어?matlab에 다른 윤곽선으로 같은 색을 채우십시오

figure 
    [xx yy] = meshgrid(1:384,1:384); 
    phi1 = (sqrt(((xx - 190).^2 + (yy - 260).^2)) - 15); 
    phi2 = (sqrt(((xx - 270).^2 + (yy - 200).^2)) - 20); 
    phi= sign(phi1).*sign(phi2); 
    phi(phi==-1)=0; 
    imshow(phi); 
    cont = contourc(phi, [0 0])'; 
    cont = cont(2 : end, :); 
    patch(cont(:, 1), cont(:, 2), 'g', 'EdgeColor', 'w') 
+0

. 그렇다면 나는 당신이 무엇을하려고하는지 확실히 모르겠습니다. 동일한 색으로 두 개의 동그라미를 채우려고하십니까? – ysakamoto

+0

@ysakamoto 예. 필자는 phi1과 phi2에 의해 생성 된 객체를 만들어 연결하려고 시도합니다. – user3336190

답변

0

다음은 채워진 원을 그리는 작은 스크립트입니다. 함수로 만들고 hold onhold off을 사용하여 많은 원을 그릴 수 있습니다. 당신은 곡선의 암시 적 정의를 사용하여보다 일반적인 모양을 만들려면

r = 2; 
xc = 1; 
yc = 1; 

st = r/100; 

x1 = (-r+xc):st:(r+xc); 
y1 = yc+sqrt(r^2-(x1-xc).^2); 
x2 = x1(end:-1:1); 
y2 = yc-sqrt(r^2-(x2-xc).^2); 

x = [x1 x2]; 
y = [y1 y2]; 

patch(x,y,'g','FaceColor', 'g'); 
0

, 다음도 작동합니다 : 난 당신이 phi1 및 PHI2에 의해 정의 된 두 개의 원을 볼

[xx, yy] = meshgrid(1:384,1:384); 

phi1 = 15^2 < ((xx-190).^2 + (yy-260).^2); 
phi2 = 20^2 < ((xx-270).^2 + (yy-200).^2); 
phi = phi1 .* phi2; 

contourf(phi, [0,1]); 
colormap([0,1,0;1,1,1]);