Main Content

흐름 띠로 회전(Curl) 표시하기

흐름 띠로 표시할 수 있는 내용

흐름 띠는 흐름선과 비슷하게 흐름의 방향을 보여주지만, 띠 형태의 흐름 선을 비트는 방법으로 흐름 축을 중심으로 하는 회전을 표시할 수도 있습니다. streamribbon 함수를 사용하면 흐름 띠의 각 꼭짓점에 대해 비틀림 각도(단위: 라디안)를 지정할 수 있습니다.

streamribboncurl 함수와 함께 사용할 경우 벡터장의 회전각속도를 표시하는 데 유용합니다. 다음 예제에서는 이 기법을 보여줍니다.

1. 플로팅할 데이터의 서브셋 선택하기

wind 데이터 세트를 불러온 후 subvolume을 사용하여 이 데이터 세트 내의 관심 영역을 선택합니다. 먼저 전체 데이터 세트를 플로팅하면 관심 영역을 선택하는 데 도움이 될 수 있습니다.

load wind
lims = [100.64 116.67 17.25 28.75 -0.02 6.86];
[x,y,z,u,v,w] = subvolume(x,y,z,u,v,w,lims);

2. 회전각속도와 풍속 계산하기

회전각속도와 풍속을 계산합니다.

cav = curl(x,y,z,u,v,w);
wind_speed = sqrt(u.^2 + v.^2 + w.^2);

3. 흐름 띠 만들기

  • meshgrid를 사용하여 흐름 띠에 대한 시작점으로 구성된 배열을 만듭니다. 시작점 배열 지정에 대한 자세한 내용은 흐름 플롯을 위한 시작점 지정하기 항목을 참조하십시오.

  • stream3.5의 스텝 크기로 흐름선의 꼭짓점을 계산합니다.

  • streamribbon은 띠의 너비를 2배로 늘려 비틀림(회전각속도를 나타냄) 정도가 더 잘 보이도록 합니다.

  • streamribbon은 생성하는 곡면 객체의 핸들을 반환하며, 이렇게 반환된 핸들은 색을 빨간색으로 설정하고(FaceColor), 곡면 가장자리의 색을 연한 회색으로 설정하며(EdgeColor), 조명을 적용하면 반사되는 주변광의 밝기를 약간 증가시킵니다(AmbientStrength).

    [sx sy sz] = meshgrid(110,20:5:30,1:5);
    verts = stream3(x,y,z,u,v,w,sx,sy,sz,.5);
    h = streamribbon(verts,x,y,z,cav,wind_speed,2);
    set(h,'FaceColor','r',...
       'EdgeColor',[.7 .7 .7],...
       'AmbientStrength',.6)
    

4. 보기를 정의하고 조명 추가하기

  • volumebounds 명령을 사용하면 편리하게 axis와 색 제한을 설정할 수 있습니다.

  • grid를 추가하고 3차원으로 view를 설정합니다(streamribbon은 현재 보기를 변경하지 않음).

  • camlight는 시점의 오른쪽에 배치되는 조명을 생성하고 lighting은 조명 방식을 구로(Gouraud)로 설정합니다.

    axis(volumebounds(x,y,z,wind_speed))
    grid on
    view(3)
    camlight right;