Main Content

이미지, 패치, 곡면의 투명도 변경

이 예제에서는 이미지, 패치, 곡면의 투명도를 수정하는 방법을 보여줍니다.

좌표축에 있는 모든 객체의 투명도

투명도 값은 알파 값이라고 합니다. alpha 함수를 사용하여 현재 좌표축에 있는 모든 image 객체, patch 객체, surface 객체의 투명도를 설정할 수 있습니다. 투명도 값을 0(완전 투명)과 1(완전 불투명) 사이로 지정합니다.

t = 0:0.1:2*pi;
x = sin(t);
y = cos(t);

figure
patch(x,y,'r')
patch(x+0.8,y,'g')
patch(x+0.4,y+0.8,'b')
axis square tight 
alpha(0.3)

Figure contains an axes object. The axes object contains 3 objects of type patch.

개별 곡면의 투명도

곡면의 투명도는 surface의 AlphaData 속성으로 정의됩니다. 알파 데이터를 스칼라 값이나 곡면의 각 꼭짓점 투명도를 지정하는 값의 행렬로 설정합니다. FaceAlpha 속성은 꼭짓점 투명도로부터 곡면의 투명도를 결정하는 방식을 나타냅니다.

[X,Y,Z] = peaks(20);
s2 = surf(X,Y,Z);

s2.AlphaData = gradient(Z);    
s2.FaceAlpha = 'flat';

Figure contains an axes object. The axes object contains an object of type surface.

개별 이미지의 투명도

곡면과 마찬가지로, 이미지의 투명도도 image의 AlphaData 속성으로 정의됩니다. 이미지의 경우에는 알파 데이터를 스칼라 값이나 이미지 데이터의 각 요소 투명도를 지정하는 값의 행렬로 설정합니다.

예를 들어, 투명도를 사용하여 두 개의 이미지를 겹쳐 보겠습니다. 먼저, 지구 이미지를 표시합니다.

earth = imread('landOcean.jpg');
image(earth)    
axis image

Figure contains an axes object. The axes object contains an object of type image.

그런 다음 투명도를 사용하여 지구 이미지에 구름 계층을 추가합니다.

clouds = imread('cloudCombined.jpg');
image(earth)
axis image
hold on

im = image(clouds);
im.AlphaData = max(clouds,[],3);    
hold off

Figure contains an axes object. The axes object contains 2 objects of type image.

개별 패치의 투명도

patch의 투명도는 FaceAlpha 속성과 FaceVertexAlphaData 속성으로 정의됩니다. 전체 패치에 걸쳐 일정한 투명도를 원할 경우 FaceVertexAlphaData를 0(완전 투명)과 1(완전 불투명) 사이의 상수로 설정하고 FaceAlpha 속성을 'flat'으로 설정하십시오.

cla
p1 = patch(x,y,'r');
axis square tight
p1.FaceVertexAlphaData = 0.2;
p1.FaceAlpha = 'flat' ; 

Figure contains an axes object. The axes object contains an object of type patch.

투명도를 같은 패치에서 서로 다르게 지정하려면 FaceVertexAlphaData를 패치의 각 꼭짓점이나 각 면의 투명도를 지정하는 값으로 구성된 행렬로 설정하십시오. 이때 FaceAlpha 속성은 FaceVertexAlphaData를 사용하여 면의 투명도가 결정되는 방식을 나타냅니다. 꼭짓점에 대해 알파 데이터가 지정된 경우 FaceAlpha'interp'로 설정되어야 합니다.

p1.FaceVertexAlphaData = x';
p1.FaceAlpha = 'interp';

Figure contains an axes object. The axes object contains an object of type patch.

텍스처 매핑을 포함하는 투명도

텍스처 매핑은 2차원 이미지를 3차원 곡면 위에 매핑합니다. CData 속성을 이미지 데이터로 설정하고 FaceColor 속성을 'texturemap'으로 설정하여 이미지를 곡면에 매핑할 수 있습니다.

이 예제에서는 지구와 구름의 3차원 보기를 만듭니다. 구면(Spherical Surface)을 만들고 텍스처 매핑을 사용하여 지구와 구름 이미지를 곡면 위에 매핑합니다.

[px,py,pz] = sphere(50);

sEarth = surface(py, px ,flip(pz));
sEarth.FaceColor = 'texturemap';
sEarth.EdgeColor = 'none';
sEarth.CData = earth;
hold on
sCloud = surface(px*1.02,py*1.02,flip(pz)*1.02); 

sCloud.FaceColor = 'texturemap'; 
sCloud.EdgeColor = 'none';
sCloud.CData = clouds;

sCloud.FaceAlpha = 'texturemap';
sCloud.AlphaData = max(clouds,[],3);
hold off
view([80 2]) 
daspect([1 1 1])
axis off tight

이 예제에 사용된 이미지는 Visible Earth에서 제공받은 것입니다.

출처: NASA 고더드 우주 비행 센터(NASA Goddard Space Flight Center) 이미지, Reto Stöckli 제공(지표면, 천해, 구름). 보강: Robert Simmon 제공(해수색, 합성 자료, 3차원 지구본, 애니메이션). 데이터 및 기술 지원: MODIS Land Group, MODIS Science Data Support Team, MODIS Atmosphere Group, MODIS Ocean Group 추가 데이터: USGS EROS Data Center(지형), USGS Terrestrial Remote Sensing Flagstaff Field Center(남극 대륙), Defense Meteorological Satellite Program(도시 조명).

참고 항목

| |