idl 3d vetcor 그림 그리기

게시판 IDL Q&A idl 3d vetcor 그림 그리기

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #1465 Reply
      tlseorb0111
      회원

      안녕하세요

      plot3d 함수를 이용하여 3d 그림을 그리고 있는데요
      혹시 벡터 표출을 3d로 할 수 있는 방법이 있는지요..
      arrow 나 vector 함수는 2차원 상에서만 그려지는 것 같습니다.

      예를 들어 x,y,z 좌표가 [0, 1], [0, 2], [0, 3] 일 경우 plot3d(x, y, z)를 하면
      라인으로 쉽게 그릴수 있는데요, 그 끝에 화살표를 달고 싶습니다.

    • #1497 Reply
      Sangwoo
      회원

      제가 알기로는 3차원 공간상에서 벡터의 모양을 구현하는 방법은 현재로서는 없는 것 같습니다. 사실 3차원 공간상에서 벡터의 화살표 모양을 표출하려면 앞부분의 화살에 해당되는 부분을 어떻게 구현하느냐가 문제이기는 합니다. 그냥 2차원에서처럼 선 두 개만 달랑 그어놓으면 시선각도에 따라서 잘 안보이는 경우가 생길 것이고, 꼬깔같은 3차원 폴리곤으로 한다면 벡터들이 많아질 경우 시스템 부담의 문제도 있겠지요. 그래도 그런 기능이 있으면 편할 것 같다는 생각은 듭니다. 나름 꼼수를 좀 쓴다면 PLOT3D 명령을 적당히 활용하는 방법은 있습니다. 아래가 그 예제인데요. 일단 3차원 XYZ 공간이 있는 상황을 가정하고 이 공간상에서 [4, 4, 4]와 [7, 7, 7] 두 점을 잇는 벡터를 그린다고 가정합니다.

      p = PLOT3D([4, 7], [4, 7], [4, 7], /OVERPLOT)
      p1 = PLOT3D([7, 7], [7, 7], [7, 7], SYMBOL=’~~’, /OVERPLOT)

      이와 같이 PLOT3D를 두번 사용하되, 벡터의 꼭지 부분에 뭔가 심볼을 그리는 것입니다. 물론 심볼들 중에 화살과 비슷한 것은 없지만, 선의 한쪽에만 심볼이 있으면 나름 비슷하게 흉내를 내볼 수는 있습니다. 물론 이 방법은 그냥 제가 생각한 약간 사이비스러운 방법이고요. 정공법은 현재로선 없는 것 같습니다. 혹시라도 좋은 방법을 알게 되면 제 블로그에서 한번 소개해 보겠습니다.

1 답변 글타래를 보이고 있습니다
'idl 3d vetcor 그림 그리기'에 답변달기
글쓴이 정보: