You are here

VTK 둘러보기

VTK가 무엇인지 궁금하신 분들을 위해, 간단히 둘러보도록 하겠습니다.
일반적으로 VTK를 이용해 GUI를 개발하시는 분들은 배포를 위한 것이 대부분이므로 이를 기준으로 설명하겠습니다.
따라서 먼저 실용적인 빌드(http://tcltk.co.kr/drupal/index.php?q=node/1185)를 읽어보세요.
물론 자신의 pc에서만 사용하시는 분들은 VTK를 설치하셔서 사용하시면 됩니다.

다음은 개발을 위해 필요한 최소한의 조건입니다.

- VTK 배포판 : http://tcltk.co.kr/drupal/index.php?q=node/317
- 텍스트 에디터 : 맘에 드는 텍스트 에디터를 준비합니다
- Tcl/Tk 배포판 : http://tcl.activestate.com

커뮤니티에 올라온 VTK 배포판은 Tcl 8.4에서 컴파일된 것이므로 Tcl도 8.4.*를 받아서 설치하시기 바랍니다.
다 준비를 하셨다면 간단한 demo프로그램을 돌려보도록 하겠습니다.

자, 아래와 같이 VTK 패키지를 임의의 폴더에 복사합니다.
그리고 C:\Tcl\bin 아래의 tcl84.dll과 tk84.dll파일을 같은 폴더에 복사합니다.
C:\Tcl\lib 아래의 tcl8.4와 tk8.4폴더를 같은 폴더에 복사합니다.
마지막으로 실용적인 빌드로 컴파일한 실행파일(main.exe)을 붙여 넣습니다.
저는 main.tcl을 실행시킬 수 있게 해 놨으며 아래의 그림을 참조하세요.

다 준비하셨다면 main.tcl 소스를 만들어 보겠습니다.

# This example demonstrates the use of the contour filter, and the use of
# the vtkSampleFunction to generate a volume of data samples from an
# implicit function.

#

# First we include the VTK Tcl packages which will make available
# all of the vtk commands from Tcl. The vtkinteraction package defines
# a simple Tcl/Tk interactor widget.
#
package require vtk
package require vtkinteraction

# VTK supports implicit functions of the form f(x,y,z)=constant. These

# functions can represent things spheres, cones, etc. Here we use a
# general form for a quadric to create an elliptical data field.
vtkQuadric quadric
  quadric SetCoefficients .5 1 .2 0 .1 0 0 .2 0 0

# vtkSampleFunction samples an implicit function over the x-y-z range

# specified (here it defaults to -1,1 in the x,y,z directions).
vtkSampleFunction sample
  sample SetSampleDimensions 30 30 30
  sample SetImplicitFunction quadric

# Create five surfaces F(x,y,z) = constant between range specified. The

# GenerateValues() method creates n isocontour values between the range
# specified.
vtkContourFilter contours
  contours SetInput [sample GetOutput]
  contours GenerateValues 5 0.0 1.2

vtkPolyDataMapper contMapper
  contMapper SetInput [contours GetOutput]
  contMapper SetScalarRange 0.0 1.2

vtkActor contActor
  contActor SetMapper contMapper

# We'll put a simple outline around the data.

vtkOutlineFilter outline
  outline SetInput [sample GetOutput]

vtkPolyDataMapper outlineMapper
  outlineMapper SetInput [outline GetOutput]

vtkActor outlineActor
  outlineActor SetMapper outlineMapper
  eval [outlineActor GetProperty] SetColor 0 0 0

# The usual rendering stuff.

vtkRenderer ren1
vtkRenderWindow renWin
    renWin AddRenderer ren1
vtkRenderWindowInteractor iren
    iren SetRenderWindow renWin

ren1 SetBackground 1 1 1
ren1 AddActor contActor
ren1 AddActor outlineActor

iren AddObserver UserEvent {wm deiconify .vtkInteract}
iren Initialize

wm withdraw .

main.exe를 실행시키면 아래와 같은 결과가 나오는 것을 확인할 수 있습니다.

Kitware에서 발간된 The VTK User's Guid의 예제프로그램들을 돌려보면서
예제 중심으로 조금씩 공부해 나가시면 도움이 많이 될 것입니다.

첨부 파일파일 크기
Image icon vtk_example1.PNG21.14 KB
Image icon prepare1.PNG39.88 KB
Package icon vtk_lect.zip30.23 KB
포럼: