Main Content

패치 데이터와 컬러맵 간의 관계

Patch 객체를 사용하는 그래픽스를 생성하는 경우, colormap 함수를 호출하여 전체 색 체계를 제어할 수 있습니다. 또한, 다음과 같은 방법으로 컬러맵과 패치 간의 관계를 제어할 수도 있습니다.

  • 특정 색을 면에 할당

  • 특정 색을 각 면을 둘러싼 꼭짓점에 할당

이러한 관계를 제어하는 방법은 패치를 지정하는 방법, 즉 x, y, z 좌표로 지정하는지 또는 면-꼭짓점 데이터로 지정하는지에 따라 다릅니다.

컬러맵과 x, y, z 좌표 배열의 관계

x, y, z 좌표 배열을 사용하여 Patch 객체를 생성하는 경우, Patch 객체의 CData 속성에는 인덱싱 배열 C가 포함됩니다. 이 배열은 컬러맵과 패치 간의 관계를 제어합니다. 면에 색을 할당하려면 C를 배열로 지정하십시오. 여기서

  • C는 n×1 배열입니다. 여기서 n은 면 개수입니다.

  • C(i)의 값은 면 i의 색을 제어합니다.

다음은 C와, 컬러맵 및 3개 면에 대한 각 관계를 보여주는 예입니다. C(i)의 값은 꼭짓점 (X(i,:), Y(i,:))으로 정의된 면의 색을 제어합니다.

Relationship between the values in matrix C to the rows in the colormap array and to three triangular patch faces.

C의 가장 작은 값은 0입니다. 이 값은 컬러맵의 첫 번째 행에 매핑됩니다. C의 가장 큰 값은 1이며 이 값은 컬러맵의 마지막 행에 매핑됩니다. C의 중간값은 컬러맵의 중간 행에 선형적으로 매핑됩니다. 이 경우, C(2)는 컬러맵의 시작 부분에서 약 2/3 떨어진 지점에 위치한 색에 매핑됩니다. 다음 코드는 앞에 있는 그림에서 설명한 Patch 객체를 생성합니다.

X = [0 0 5; 0 0 5; 4 4 9];
Y = [0 4 0; 3 7 3; 0 4 0];
C = [0; .6667; 1];
p = patch(X,Y,C);
colorbar

Three triangular patch faces displayed with a colorbar

꼭짓점에 색을 할당하려면 C를 배열로 지정하십시오. 여기서

  • C는 m×n 배열이며, 여기서 m은 면당 꼭짓점 개수이고 n은 면 개수입니다.

  • C(i,j)의 값은 면 j의 꼭짓점 i의 색을 제어합니다.

다음은 C와, 컬러맵 및 6개 꼭짓점에 대한 각 관계를 보여주는 예입니다. C(i,j)의 값은 (X(i,j), Y(i,j))의 꼭짓점에 대한 색을 제어합니다.

Relationship between values in matrix C and the rows of the colormap and the vertices of two triangular patch faces. The colors from each vertex blend to form a color gradient across each of the faces.

패치 면의 경우와 마찬가지로, MATLAB®C의 값을 컬러맵의 행 개수로 스케일링합니다. 이 경우, 가장 작은 값은 C(2,2)=1이며 이 값은 컬러맵의 첫 번째 행에 매핑됩니다. 가장 큰 값은 C(3,1)=6이며 이 값은 컬러맵의 마지막 행에 매핑됩니다.

다음 코드는 앞에 있는 그림에서 설명한 Patch 객체를 생성합니다. 꼭짓점 색이 각 면 전반에 걸쳐 섞이도록 FaceColor 속성이 'interp'로 설정됩니다.

clf
X = [0 3; 0 3; 5 6];
Y = [0 3; 5 6; 0 3];
C = [5 4; 2 0; 6 3];
p = patch(X,Y,C,'FaceColor','interp');
colorbar

Two triangular patch faces with colors specified for the six vertices

컬러맵과 면-꼭짓점 데이터의 관계

면-꼭짓점 데이터를 사용하여 패치를 생성하는 경우, Patch 객체의 FaceVertexCData 속성에는 인덱싱 배열 C가 포함됩니다. 이 배열은 컬러맵과 패치 간의 관계를 제어합니다.

면에 색을 할당하려면 C를 배열로 지정하십시오. 여기서

  • C는 n×1 배열입니다. 여기서 n은 면 개수입니다.

  • C(i)의 값은 면 i의 색을 제어합니다.

다음은 C와, 컬러맵 및 3개 면에 대한 각 관계를 보여주는 예입니다.

Relationship between the values in matrix C and the rows in the colormap and three triangular patch faces.

C의 가장 작은 값은 0이며 이 값은 컬러맵의 첫 번째 행에 매핑됩니다. C의 가장 큰 값은 1이며 이 값은 컬러맵의 마지막 값에 매핑됩니다. C의 중간값은 컬러맵의 중간 행에 선형적으로 매핑됩니다. 이 경우, C(2)는 컬러맵의 맨 아래 부분에서 약 2/3 떨어진 지점에 위치한 색에 매핑됩니다.

다음 코드는 앞에 있는 그림에서 설명한 Patch 객체를 생성합니다. 디폴트 색인 검은색 대신 컬러맵 색을 표시하기 위해 FaceColor 속성을 'flat'으로 설정합니다.

clf
vertices = [0 0; 0 3; 4 0; 0 4; 0 7; 4 4; 5 0; 5 3; 9 0];
faces = [1 2 3; 4 5 6; 7 8 9];
C = [0; 0.6667; 1];
p = patch('Faces',faces,'Vertices',vertices,'FaceVertexCData',C);
p.FaceColor = 'flat';
colorbar

Three triangular patch faces displayed with a colorbar

꼭짓점에 색을 할당하려면 Patch 객체의 FaceVertexCData 속성을 배열 C로 지정하십시오. 여기서

  • C는 n×1 배열입니다. 여기서 n은 꼭짓점 개수입니다.

  • C(i)의 값은 꼭짓점 i의 색을 제어합니다.

다음은 C와, 컬러맵 및 6개 꼭짓점에 대한 각 관계를 보여주는 예입니다.

Relationship between the values in matrix C and the rows of the colormap and the vertices of two triangular patch faces. The colors from each vertex blend to form a color gradient across each of the faces.

패치 면의 경우와 마찬가지로, MATLAB은 C의 값을 컬러맵의 행 개수로 스케일링합니다. 이 경우, 가장 작은 값은 C(2)=1이며 이 값은 컬러맵의 첫 번째 행에 매핑됩니다. 가장 큰 값은 C(6)=6이며 이 값은 컬러맵의 마지막 행에 매핑됩니다.

다음 코드는 앞에 있는 그림에서 설명한 Patch 객체를 생성합니다. 꼭짓점 색이 각 면 전반에 걸쳐 섞이도록 FaceColor 속성이 'interp'로 설정됩니다.

clf
vertices = [0 0; 0 5; 5 0; 3 3; 3 6; 6 3];
faces = [1 2 3; 4 5 6];
C = [5; 1; 4; 3; 2; 6];
p = patch('Faces',faces,'Vertices',vertices,'FaceVertexCData',C);
p.FaceColor = 'interp';
colorbar

Two triangular patch faces with colors specified for the six vertices

참고 항목

함수

속성

관련 항목