选择显示字体大小

vtk在java2中的使用

来自:csdn   作者:ithinkuml


vtk(visualization toolkit)是一个开放源码、自由获取的软件系统,全世界的数以千计的研究人员和开发人员用它来进行3d计算机图形,图像处理,可视化。vtk包含一个c++类库,众多的翻译接口层,包括tcl/tk,java,python。



visualization toolkit 是一个用于可视化应用程序构造与运行的支撑环境,它是在三维函数库opengl 的基础上采用面向对象的设计方法发展起来的,它将我们在可视化开发过程中会经常遇到的细节屏蔽起来,并将一些常用的算法封装起来。比如visualization toolkit 将我们在表面重建中比较常见的marching cubes 算法封装起来,以类的形式给我们以支持,这样我们在对三维规则点阵数据进行表面重建时就不必再重复编写marchingcubes 算法的代码,而直接使用visualization toolkit 中已经提供的vtkmarchingcubes 类



visualization toolkit 是给从事可视化应用程序开发工作的研究人员提供直接的技术支持的一个强大的可视化开发工具,它以用户使用的方便性和灵活性为主要原则,具有如下的特点:

1)       具有强大的三维图形功能。visualization toolkit 既支持基于体素voxel-basedrendering 的体绘制volume rendering又保留了传统的面绘制,从而在极大的改善可视化效果的同时又可以充分利用现有的图形库和图形硬件

2)       visualization toolkit 的体系结构使其具有非常好的流streaming 和高速缓存caching 的能力,在处理大量的数据时不必考虑内存资源的限制

3)       visualization toolkit 能够更好的支持基于网络的工具比如java 和vrml 随着web 和inte.net 技术的发展visualization toolkit 有着很好的发展前景

4)       能够支持多种着色如opengl 等

5)       visualization toolkit 具有设备无关性使其代码具有良好的可移植性

6)       visualization toolkit 中定义了许多宏,这些宏极大的简化了编程工作并且加强了一致的对象行为

7)       visualization toolkit 具有更丰富的数据类型,支持对多种数据类型进行处理

8)       既可以工作于windows 操作系统又可以工作于unix 操作系统极大的方便了用户



下面介绍一下vtk在jdk1.4.1_02下的使用方法,

1)       从vtk的网站(http://www.vtk.org/)上下载最新的软件包,版本是4.2。然后把它安装到c:\vtk42\目录下

2)       从sun官方下载链接,版本1.4.1_02,然后安装到c:\j2sdk1.4.1_02上

3)       设置环境变量,系统->高级->环境变量->path,设置为c:\j2sdk1.4.1_02\bin;c:\programfiles\java\j2re1.4.1_02\bin;c:\j2sdk1.4.1_02\jre\bin;c:\vtk42\bin

4)       拷贝c:\vtk42\bin\*java.dll到系统目录

5)       编译,运行,为了方便起见,拷贝c:\vtk42\examples\tutorial\step1\java目录下的cone.java到d盘,当前目录为d盘



d:\>javac -classpath c:\vtk42\bin\vtk.jar cone.java

d:\>java -classpath .;c:\vtk42\bin\vtk.jar cone

源码如下:

//

// this example creates a polygonal model of a cone, and then renders it to

// the screen. it will rotate the cone 360 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 {

    system.loadlibrary("vtkcommonjava");

    system.loadlibrary("vtkfilteringjava");

    system.loadlibrary("vtkiojava");

    system.loadlibrary("vtkimagingjava");

    system.loadlibrary("vtkgraphicsjava");

    system.loadlibrary("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();

    cone.setheight( 3.0 );

    cone.setradius( 1.0 );

    cone.setresolution( 10 );

  

    //

    // 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();

    conemapper.setinput( cone.getoutput() );



    //

    // create an actor to represent the cone. the actor orchestrates rendering

    // of the mapper's graphics primitives. an actor also refers to properties

    // via a vtkproperty instance, and includes an internal transformation

    // matrix. we set this actor's mapper to be conemapper which we created

    // above.

    //

    vtkactor coneactor = new vtkactor();

    coneactor.setmapper( 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 ren1 = new vtkrenderer();

    ren1.addactor( coneactor );

    ren1.setbackground( 0.1, 0.2, 0.4 );



    //

    // 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 300 pixels by 300

    //

    vtkrenderwindow renwin = new vtkrenderwindow();

    renwin.addrenderer( ren1 );

    renwin.setsize( 300, 300 );

    

    //

    // now we loop over 360 degreeees and render the cone each time

    //

    int i;

    for (i = 0; i < 360; ++i)

      {

      // render the image

      renwin.render();

      // rotate the active camera by one degree

      ren1.getactivecamera().azimuth( 1 );

      }

  

    }

}


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons