Main Content

isocolors

등가곡면과 패치 색 계산

구문

nc = isocolors(X,Y,Z,C,vertices)
nc = isocolors(X,Y,Z,R,G,B,vertices)
nc = isocolors(C,vertices)
nc = isocolors(R,G,B,vertices)
nc = isocolors(...,PatchHandle)
isocolors(...,PatchHandle)

설명

nc = isocolors(X,Y,Z,C,vertices)는 색 값 C를 사용하여 patch 객체 꼭짓점(vertices)의 색을 계산합니다. 배열 X, Y, ZC의 색 데이터에 대한 좌표를 정의하며, 카테시안(Cartesian)의 축이 정렬된 그리드(meshgrid에 의해 생성된 것과 같이)를 나타내는 단조 벡터여야 합니다. 색은 nc에 반환됩니다. C는 3차원(인덱스 색상)이어야 합니다.

nc = isocolors(X,Y,Z,R,G,B,vertices)R, G, B를 빨간색, 녹색, 파란색 배열(트루컬러)로 사용합니다.

nc = isocolors(C,vertices)nc = isocolors(R,G,B,vertices)X, Y, Z가 다음 표현식에 의해 결정되는 것으로 가정합니다.

[X Y Z] = meshgrid(1:n,1:m,1:p) 

여기서 [m n p] = size(C)입니다.

nc = isocolors(...,PatchHandle)PatchHandle로 식별되는 패치의 꼭짓점을 사용합니다.

isocolors(...,PatchHandle)PatchHandle에 지정된 패치의 FaceVertexCData 속성을 계산된 색으로 설정합니다.

예제

모두 축소

이 예제에서는 등가곡면을 표시하고 인덱스 색상을 사용하여 임의의 데이터로 색을 칠합니다.

[x,y,z] = meshgrid(1:20,1:20,1:20);
data = sqrt(x.^2 + y.^2 + z.^2);
cdata = smooth3(rand(size(data)),'box',7);
p = patch(isosurface(x,y,z,data,10));
isonormals(x,y,z,data,p)
isocolors(x,y,z,cdata,p)
p.FaceColor = 'interp';
p.EdgeColor = 'none';
view(150,30)
daspect([1 1 1])
axis tight
camlight
lighting gouraud

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

이 예제에서는 등가곡면을 표시하고 트루컬러(RGB) 데이터를 사용하여 색을 칠합니다.

[x,y,z] = meshgrid(1:20,1:20,1:20);
data = sqrt(x.^2 + y.^2 + z.^2);
p = patch(isosurface(x,y,z,data,20));
isonormals(x,y,z,data,p)
[r,g,b] = meshgrid(20:-1:1,1:20,1:20);
isocolors(x,y,z,r/20,g/20,b/20,p)
p.FaceColor = 'interp';
p.EdgeColor = 'none';
view(150,30) 
daspect([1 1 1])
camlight 
lighting gouraud

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

이 예제에서는 isocolors를 사용하여 등가곡면(patch 객체)의 꼭짓점으로 트루컬러 데이터를 계산한 다음, 값을 수정하기 위해 색 데이터를 변수(c)로 반환합니다. 그런 다음 등가곡면의 FaceVertexCData를 명시적으로 새 데이터(1-c)로 설정합니다.

[x,y,z] = meshgrid(1:20,1:20,1:20);
data = sqrt(x.^2 + y.^2 + z.^2);
p = patch(isosurface(data,20));
isonormals(data,p)
[r,g,b] = meshgrid(20:-1:1,1:20,1:20);
c = isocolors(r/20,g/20,b/20,p);
p.FaceVertexCData = 1-c;
p.FaceColor = 'interp';
p.EdgeColor = 'none';
view(150,30) 
daspect([1 1 1])
camlight 
lighting gouraud

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

확장 기능

버전 내역

R2006a 이전에 개발됨