vtk在Java2中的使用

原创 2003年06月13日 16:08:00

VTK(Visualization ToolKit)是一个开放源码、自由获取的软件系统,全世界的数以千计的研究人员和开发人员用它来进行3D计算机图形,图像处理,可视化。VTK包含一个c++类库,众多的翻译接口层,包括Tcl/Tk,Java,Python。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

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 和Internet 技术的发展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调用vtk

  • 2016年05月09日 10:23
  • 26.16MB
  • 下载

VTK经验分享 1.Hello VTK

1.1 本系列写作目的 因公司项目需要,我最近学习了下VTK并将其引入到一个数据可视化展现项目中。一个多月下来,从无到有地慢慢积累了一些经验,为了分享和自己巩固,打算以实例为基础,讲解VTK在Java...
  • qqlinke
  • qqlinke
  • 2011年06月21日 13:06
  • 1572

QVTKWidget 和 vtkImageViewer2 的 RenderWindow 相关问题

笔者开发环境:Qt 5.6 + VTK 6.3 + VS2013 vtkImageViewer2对象读取CT切片之后如果不设置RernderWindow为我们想要的QVTKWidget对象显示的话,该...
  • zengzeyu
  • zengzeyu
  • 2016年08月22日 10:55
  • 953

vtkImageViewer2显示彩色图像

0 背景     使用vtkImageViewer2显示彩色图像时,  有时会莫名的显示为黑白效果. 1 解决方法     根据参考资料[1]的提示, 将窗位设置为127.5, 窗宽设置为255, 即...
  • Q1302182594
  • Q1302182594
  • 2016年06月24日 09:01
  • 780

VTK之基于Qt的VTK应用程序

友好的用户图形界面是应用程序必须的因素之一,对于VTK应用程序也是如此。VTK附带的程序示例大多数是基于控制台的,但是VTK也可以与很多流行的GUI开发工具整合。本文介绍如何把VTK和GUI开发工具Q...
  • webzhuce
  • webzhuce
  • 2017年07月16日 18:23
  • 664

认识VTK工作原理

转载:http://blog.sina.com.cn/s/blog_63f6ddae010126de.htmlu 仅作学习用途VTK有两个子系统组成:一个是编译生成的C++类库,一个是通过Java、...
  • zhangchen1003
  • zhangchen1003
  • 2016年04月13日 00:21
  • 835

编译VTK的MFC库

原文链接:http://blog.csdn.net/left_la/article/details/7069708 本人做了少量修改! Win7 + VS2010 + CMake2.8.6 + ...
  • wishchin
  • wishchin
  • 2013年11月06日 18:30
  • 1649

VTK在Java中的安装

Java中配置VTK步骤 很多刚开始接触VTK的人,都会觉得很难理解,从第一步安装开始就困难重重。我自己也是这样,学习VTK的过程中走了不少弯路,在这里分享一下我的学习过程,希望对大家有帮助。 由...
  • qq_33484881
  • qq_33484881
  • 2018年01月13日 11:00
  • 27

PyQt创建VTK

1.定义和调用全局函数来创建VTK图形 import sys import vtk from PyQt4 import QtCore, QtGui from vtk.qt4.QVTKRender...
  • u013232740
  • u013232740
  • 2015年09月06日 11:14
  • 881

QT+VTK: 如何在QT中显示VTK生成的图像

本文由Markdown语法编辑器编辑完成。1. 背景:在医疗软件的开发中,QT和VTK是经常配合使用的。基于QT,可以快速地搭建出软件的图像窗口、按钮、工具栏和状态栏;基于VTK(还有DCMTK,IT...
  • inter_peng
  • inter_peng
  • 2017年01月16日 13:34
  • 2264
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vtk在Java2中的使用
举报原因:
原因补充:

(最多只允许输入30个字)