Main Content

알파맵 수정하기

모든 Figure에는 연결된 알파맵이 있으며, 이 알파맵은 0에서 1 사이의 값으로 구성된 벡터입니다. 디폴트 알파맵은 0에서 1 사이의 선형적인 범위를 가지는 64개의 값을 포함합니다. Figure의 Alphamap 속성을 사용하거나 alphamap 함수를 사용하여 알파맵을 보거나 수정할 수 있습니다.

디폴트 알파맵

다음 플롯에 표시된 것처럼 디폴트 알파맵은 0에서 1 사이의 선형적인 범위를 가지는 64개의 값을 포함합니다.

am = get(gcf,'Alphamap');
plot(am)

이 알파맵은 가장 낮은 알파 데이터 값을 완전히 투명하게 표시하고 가장 높은 알파 데이터 값을 불투명하게 표시합니다.

alphamap 함수를 사용하면 몇몇 유용한 미리 정의된 알파맵을 생성하고 기존 맵을 수정할 수도 있습니다. 예를 들어, 다음은

figure;
alphamap('vup')

다음과 같이 Figure의 Alphamap 속성을 값이 증가한 다음에 감소하는 알파맵으로 설정합니다.

am = get(gcf,'Alphamap');
plot(am)

increase 옵션 또는 decrease 옵션을 사용하여 이런 값들을 움직일 수 있습니다. 예를 들어, 다음은

alphamap('increase',.4)

현재 Figure의 알파맵에 있는 모든 값에 값 0.4를 더합니다. 'vup' 알파맵을 다시 플로팅하면 그 변화를 볼 수 있습니다. 값은 범위 [0 1]로 고정됩니다.

am = get(gcf,'Alphamap');
plot(am)

예제 — 알파맵 수정하기

이 예제에서는 슬라이스 평면을 사용하여 볼륨 데이터를 검토합니다. 슬라이스 평면은 알파 데이터에 색 데이터를 사용하고 값이 감소하는(rampdown) 알파맵을 사용합니다(값 범위는 1에서 0 사이임).

  1. 세 개의 변수를 갖는 함수를 실행하여 볼륨 데이터를 만듭니다.

    [x,y,z] = meshgrid(-1.25:.1:-.25,-2:.2:2,-2:.1:2);
    v = x.*exp(-x.^2-y.^2-z.^2);
    
  2. 슬라이스 평면을 만들고, 알파 데이터를 색 데이터와 같게 설정하고, 보간된 FaceColorFaceAlpha를 지정합니다.

    h = slice(x,y,z,v,[-1 -.75 -.5],[],[0]);
    set(h,'EdgeColor','none',...
    'FaceColor','interp',...
    'FaceAlpha','interp')
    alpha('color')
  3. rampdown 알파맵을 설치하고 알파맵의 각 값을 0.1씩 증가시켜 원하는 수준의 투명도를 얻습니다. hsv 컬러맵을 지정합니다.

    alphamap('rampdown')
    alphamap('increase',.1)
    colormap hsv
    

이 알파맵은 함수의 가장 작은 값(거의 0에 가까운 값)을 최소 투명도로 표시하고, 가장 큰 값을 최대 투명도로 표시합니다. 이를 통해 슬라이스 평면을 관통해서 보는 동시에 거의 0에 가까운 데이터를 보존할 수 있습니다.

관련 항목