Main Content

coneplot

속도 벡터를 원뿔(Cone)을 사용하여 3차원 벡터장에서 플로팅

  • Plot velocity vectors as cones in 3-D vector field

구문

coneplot(X,Y,Z,U,V,W,Cx,Cy,Cz)
coneplot(U,V,W,Cx,Cy,Cz)
coneplot(...,s)
coneplot(...,color)
coneplot(...,'quiver')
coneplot(...,'method')
coneplot(X,Y,Z,U,V,W,'nointerp')
coneplot(axes_handle,...)
h = coneplot(...)

설명

coneplot(X,Y,Z,U,V,W,Cx,Cy,Cz)는 속도 벡터의 방향을 가리키고 속도 벡터의 크기에 비례하는 길이를 갖는 원뿔로 속도 벡터를 플로팅합니다. X, Y, Z는 벡터장에 대한 좌표를 정의합니다. U, V, W는 벡터장을 정의합니다. 이와 같은 배열은 크기가 같고, 단조이며, 카테시안(Cartesian) 축 정렬 그리드(예: meshgrid로 생성한 데이터)를 나타내야 합니다. Cx, Cy, Cz는 벡터장에서 원뿔의 위치를 정의합니다. 시작점에 대한 자세한 내용은 시각화 기술에 관한 흐름 플롯을 위한 시작점 지정하기 섹션을 참조합니다.

coneplot(U,V,W,Cx,Cy,Cz)(X, Y, Z 인수 생략)는 [X,Y,Z] = meshgrid(1:n,1:m,1:p)라고 가정합니다. 여기서 [m,n,p]= size(U)입니다.

coneplot(...,s)는 원뿔을 자동으로 스케일링하여 그래프에 맞춘 다음 스케일링 인자 s를 사용하여 늘입니다. s에 대한 값을 지정하지 않으면 coneplot이 값 1을 사용합니다. 자동 스케일링 없이 원뿔을 플로팅하려면 s = 0을 사용합니다.

coneplot(...,color)는 배열 color를 벡터장으로 보간한 다음 보간된 값에 따라 원뿔을 채색합니다. color 배열의 크기는 U, V, W 배열의 크기와 같아야 합니다. 이 옵션은 원뿔에서만 작동합니다(즉, quiver 옵션에서는 작동 안 함).

coneplot(...,'quiver')는 원뿔 대신에 화살표를 그립니다(퀴버 플롯의 그림은 quiver3 참조).

coneplot(...,'method')는 사용할 보간 방법을 지정합니다. methodlinear, cubic, nearest 중 하나일 수 있습니다. 디폴트 값은 linear입니다. (이러한 보간 방법에 대한 자세한 내용은 interp3을 참조하십시오.)

coneplot(X,Y,Z,U,V,W,'nointerp')는 원뿔의 위치를 볼륨으로 보간하지 않습니다. 원뿔은 X, Y, Z로 정의된 위치에서 그려지며 U, V, W에 따라 방향이 지정됩니다. 배열 X, Y, Z, U, V, W는 크기가 동일해야 합니다.

coneplot(axes_handle,...)은 현재 좌표축(gca) 대신 axes_handle 핸들 좌표축에 플로팅됩니다.

h = coneplot(...)은 원뿔을 그리는 데 사용되는 patch 객체의 핸들을 반환합니다.

coneplot은 원뿔을 그래프에 맞게 자동으로 스케일링하는 한편, 각각의 속도 벡터에 비례하도록 원뿔의 비율을 유지합니다.

예제

모두 축소

사각형 공간 영역을 통과하는 공기의 움직임을 나타내는 벡터 볼륨 데이터에 대한 속도 벡터 원뿔을 플로팅합니다.

데이터를 불러옵니다. wind 데이터 세트는 벡터 성분을 지정하는 배열 u, v, w와 좌표를 지정하는 배열 x, y, z를 포함합니다.

load wind

슬라이스 평면의 위치를 지정하고 원뿔 플롯의 위치를 지정할 데이터의 범위를 확정합니다.

xmin = min(x(:));
xmax = max(x(:));
ymin = min(y(:));
ymax = max(y(:));
zmin = min(z(:));

원뿔을 플로팅할 위치를 정의합니다. xy에서 전체 범위를 선택하고 z에서 3부터 15까지의 범위를 선택합니다.

xrange = linspace(xmin,xmax,8);
yrange = linspace(ymin,ymax,8);
zrange = 3:4:15;
[cx,cy,cz] = meshgrid(xrange,yrange,zrange);

원뿔을 플로팅하고 스케일링 인자를 5로 설정하여 원뿔을 디폴트 크기보다 크게 만듭니다.

figure
hcone = coneplot(x,y,z,u,v,w,cx,cy,cz,5);

원뿔 색을 설정합니다.

hcone.FaceColor = 'red';
hcone.EdgeColor = 'none';

풍속을 나타내는 벡터장의 크기를 계산하여 slice 명령에 대한 스칼라 데이터를 생성합니다.

hold on
wind_speed = sqrt(u.^2 + v.^2 + w.^2);

x축을 따라 xminxmax 값에, y축을 따라 ymax 값에, z축을 따라 zmin 값에 슬라이스 평면을 만듭니다. 슬라이스 색 채우기가 풍속을 나타내도록 보간된 면 색을 지정하고, 가장자리를 그리지 않습니다.

hsurfaces = slice(x,y,z,wind_speed,[xmin,xmax],ymax,zmin);
set(hsurfaces,'FaceColor','interp','EdgeColor','none')
hold off

좌표축 보기를 변경하고 데이터 종횡비를 설정합니다.

view(30,40)
daspect([2,2,1])

광원을 카메라 오른쪽에 추가하고 구로(Gouraud) 조명을 사용하여 원뿔과 슬라이스 평면에 부드러운 3차원 모양을 제공합니다.

camlight right
lighting gouraud
set(hsurfaces,'AmbientStrength',0.6)
hcone.DiffuseStrength = 0.8;

확장 기능

버전 내역

R2006a 이전에 개발됨