熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

vtk在Java2中的使用

2013-11-15 11:51:48  來源: JSP教程 

  VTK(Visualization ToolKit)是一個開放源碼自由獲取的軟件系統全世界的數以千計的研究人員和開發人員用它來進行D計算機圖形圖像處理可視化VTK包含一個c++類庫眾多的翻譯接口層包括Tcl/TkJavaPython
  
  Visualization Toolkit 是一個用於可視化應用程序構造與運行的支撐環境它是在三維函數庫OpenGL 的基礎上采用面向對象的設計方法發展起來的它將我們在可視化開發過程中會經常遇到的細節屏蔽起來並將一些常用的算法封裝起來比如Visualization Toolkit 將我們在表面重建中比較常見的Marching Cubes 算法封裝起來以類的形式給我們以支持這樣我們在對三維規則點陣數據進行表面重建時就不必再重復編寫MarchingCubes 算法的代碼而直接使用Visualization Toolkit 中已經提供的vtkMarchingCubes 類
  
  Visualization Toolkit 是給從事可視化應用程序開發工作的研究人員提供直接的技術支持的一個強大的可視化開發工具它以用戶使用的方便性和靈活性為主要原則具有如下的特點
  
  ) 具有強大的三維圖形功能Visualization Toolkit 既支持基於體素Voxelbasedrendering 的體繪制Volume Rendering又保留了傳統的面繪制從而在極大的改善可視化效果的同時又可以充分利用現有的圖形庫和圖形硬件
  
  ) Visualization Toolkit 的體系結構使其具有非常好的流streaming 和高速緩存caching 的能力在處理大量的數據時不必考慮內存資源的限制
  
  ) Visualization Toolkit 能夠更好的支持基於網絡的工具比如Java 和VRML 隨著Web 和Internet 技術的發展Visualization Toolkit 有著很好的發展前景
  
  ) 能夠支持多種著色如OpenGL 等
  
  ) Visualization Toolkit 具有設備無關性使其代碼具有良好的可移植性
  
  ) Visualization Toolkit 中定義了許多宏這些宏極大的簡化了編程工作並且加強了一致的對象行為
  
  ) Visualization Toolkit 具有更豐富的數據類型支持對多種數據類型進行處理
  
  ) 既可以工作於Windows 操作系統又可以工作於Unix 操作系統極大的方便了用戶
  
  下面介紹一下VTK在JDK_下的使用方法
  
  ) 從vtk的網站()上下載最新的軟件包版本是然後把它安裝到C:\vtk\目錄下
  
  ) 從Sun官方下載鏈接版本_然後安裝到C:\jsdk_
  
  ) 設置環境變量系統>高級>環境變量>path設置為C:\jsdk_\bin;C:\ProgramFiles\Java\jre_\bin;C:\jsdk_\jre\bin;C:\vtk\bin
  
  ) 拷貝C:\vtk\bin\*javadll到系統目錄
  
  ) 編譯運行為了方便起見拷貝C:\vtk\Examples\Tutorial\Step\Java目錄下的Conejava到d盤當前目錄為d盤
  
  D:\>javac classpath c:\vtk\bin\vtkjar Conejava
  
  D:\>java classpath ;c:\vtk\bin\vtkjar Cone
  
  源碼如下
  
  //
  
  // This example creates a polygonal model of a cone and then renders it to
  
  // the screen It will rotate the cone degrees and then exit The basic
  
  // setup of source > mapper > actor > renderer > renderwindow is
  
  // typical of most VTK programs
  
  //
  
  // We import the vtk wrapped classes first
  
  import vtk*;
  
  // Then we define our class
  
  public class Cone {
  
   // In the static contructor we load in the native code
  
   // The libraries must be in your path to work
  
   static {
  
    SystemloadLibrary(vtkCommonJava);
  
    SystemloadLibrary(vtkFilteringJava);
  
    SystemloadLibrary(vtkIOJava);
  
    SystemloadLibrary(vtkImagingJava);
  
    SystemloadLibrary(vtkGraphicsJava);
  
    SystemloadLibrary(vtkRenderingJava);
  
   }
  
   // now the main program
  
   public static void main (String []args) {
  
    //
  
    // Next we create an instance of vtkConeSource and set some of its
  
    // properties The instance of vtkConeSource cone is part of a
  
    // visualization pipeline (it is a source process object); it produces data
  
    // (output type is vtkPolyData) which other filters may process
  
    //
  
    vtkConeSource cone = new vtkConeSource();
  
    coneSetHeight( );
  
    coneSetRadius( );
  
    coneSetResolution( );
  
     //
  
    // In this example we terminate the pipeline with a mapper process object
  
    // (Intermediate filters such as vtkShrinkPolyData could be inserted in
  
    // between the source and the mapper) We create an instance of
  
    // vtkPolyDataMapper to map the polygonal data into graphics primitives We
  
    // connect the output of the cone souece to the input of this mapper
  
    //
  
    vtkPolyDataMapper coneMapper = new vtkPolyDataMapper();
  
    coneMapperSetInput( coneGetOutput() );
  
    //
  
    // Create an actor to represent the cone The actor orchestrates rendering
  
    // of the mappers graphics primitives An actor also refers to properties
  
    // via a vtkProperty instance and includes an internal transformation
  
    // matrix We set this actors mapper to be coneMapper which we created
  
    // above
  
    //
  
    vtkActor coneActor = new vtkActor();
  
    coneActorSetMapper( coneMapper );
  
    //
  
    // Create the Renderer and assign actors to it A renderer is like a
  
    // viewport It is part or all of a window on the screen and it is
  
    // responsible for drawing the actors it has We also set the background
  
    // color here
  
    //
  
    vtkRenderer ren = new vtkRenderer();
  
    renAddActor( coneActor );
  
    renSetBackground( );
  
    //
  
    // Finally we create the render window which will show up on the screen
  
    // We put our renderer into the render window using AddRenderer We also
  
    // set the size to be pixels by
  
    //
  
    vtkRenderWindow renWin = new vtkRenderWindow();
  
    renWinAddRenderer( ren );
  
    renWinSetSize( );
  
    //
  
    // now we loop over degreeees and render the cone each time
  
    //
  
    int i;
  
    for (i = ; i < ; ++i)
  
     {
  
     // render the image
  
     renWinRender();
  
     // rotate the active camera by one degree
  
     renGetActiveCamera()Azimuth( );
  
     }
  
    }
  }
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19769.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.