- 浏览: 845422 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
loveseed1989:
您好,我用您的方法运行Cone.java,会给我报java.l ...
vtk学习笔记 --- 编译vtk库和java库 -
60love5:
60love5 写道首先谢谢你的解析,但你这个验证可见性的小程 ...
多线程中共享对象的可见性 -
60love5:
首先谢谢你的解析,但你这个验证可见性的小程序是存在问题的,你的 ...
多线程中共享对象的可见性 -
Gamehu520:
...
java 中的Unsafe -
shanpao1234560:
这个list不是静态的第一种情况下也会有线程安全的问题么,求指 ...
一个看似线程安全的示例
1、使用基本的三维对象,如锥体,立方体,柱体以及平面等
2、在同一窗口中同时显示多个渲染结果(设置视口)
3、添加基本的鼠标交互,使用鼠标可以转动三维对象
程序运行效果如下图:
相关代码如下:
public class ConeTest { //加载动态链接库 static { System.loadLibrary("vtkCommonJava"); System.loadLibrary("vtkFilteringJava"); System.loadLibrary("vtkIOJava"); System.loadLibrary("vtkImagingJava"); System.loadLibrary("vtkGraphicsJava"); System.loadLibrary("vtkRenderingJava"); } public static void main(String[] args) { vtkConeSource cone = new vtkConeSource(); //设置圆锥的高度和半径 cone.SetHeight(3); cone.SetRadius(1); //设置分辨率,值越大,越趋近于圆锥体 cone.SetResolution(10); vtkCubeSource cube = new vtkCubeSource(); //设置立方体的长宽高 cube.SetXLength(1); cube.SetYLength(1.5); cube.SetZLength(1); //创建圆柱体 vtkCylinderSource cylinder = new vtkCylinderSource(); //创建平面 vtkPlaneSource plane = new vtkPlaneSource(); //创建对应的mapper vtkPolyDataMapper coneMapper = new vtkPolyDataMapper(); coneMapper.SetInputConnection(cone.GetOutputPort()); vtkPolyDataMapper cubeMapper = new vtkPolyDataMapper(); cubeMapper.SetInput(cube.GetOutput()); vtkPolyDataMapper cylinderMapper = new vtkPolyDataMapper(); cylinderMapper.SetInput(cylinder.GetOutput()); vtkPolyDataMapper planeMapper = new vtkPolyDataMapper(); planeMapper.SetInput(plane.GetOutput()); //创建对应的actor,设置mapper vtkActor coneActor = new vtkActor(); coneActor.SetMapper(coneMapper); vtkActor cubeActor = new vtkActor(); cubeActor.SetMapper(cubeMapper); vtkActor cylinderActor = new vtkActor(); cylinderActor.SetMapper(cylinderMapper); vtkActor planeActor = new vtkActor(); planeActor.SetMapper(planeMapper); //针对每个actor创建一个vtkRender,添加actor vtkRenderer ren1 = new vtkRenderer(); ren1.AddActor(coneActor); //下面的代码就是设置视口的,将屏幕分为4个视口 //前两个参数是视口左下角点的坐标(xmin,ymin),后两个参数是右上角的坐标(xmax,ymax) ren1.SetViewport(0, 0.5, 0.5, 1); ren1.SetBackground(0.1, 0.2, 0.4); vtkRenderer ren2 = new vtkRenderer(); ren2.AddActor(cubeActor); ren2.SetViewport(0.5, 0.5, 1, 1); ren2.SetBackground(0, 1, 0); vtkRenderer ren3 = new vtkRenderer(); ren3.AddActor(cylinderActor); ren3.SetViewport(0, 0, 0.5, 0.5); vtkRenderer ren4 = new vtkRenderer(); ren4.AddActor(planeActor); ren4.SetViewport(0.5 , 0, 1, 0.5); ren4.SetBackground(0, 0, 1); vtkRenderWindow renWin = new vtkRenderWindow(); renWin.AddRenderer(ren1); renWin.AddRenderer(ren2); renWin.AddRenderer(ren3); renWin.AddRenderer(ren4); renWin.SetSize(500, 400); //添加鼠标交互 vtkRenderWindowInteractor interactor = new vtkRenderWindowInteractor(); interactor.SetRenderWindow(renWin); vtkInteractorStyleTrackballActor style = new vtkInteractorStyleTrackballActor(); interactor.SetInteractorStyle(style); //初始化交互器 并开始执行事件循环 interactor.Initialize(); interactor.Start(); } }
发表评论
-
基于Oracle Streams + Oracle AQ 捕获变更,发布变更(二)
2014-11-21 22:23 3208要求:使用Oracle Streams捕获某个用户下部 ... -
基于Oracle Streams + Oracle AQ 捕获变更,发布变更(一)
2014-11-20 22:23 2794要求:使用Oracle Streams捕获某个用户下部分表 ... -
如何去掉在浏览器中打开java applet时的警告对话框
2013-08-24 12:10 6988好久没更新博客了! 最近,由于项目要求,需要将sw ... -
Android 内存泄露笔记
2013-03-05 23:10 01、大部分内存泄露都是错误的持有了Activity或者Con ... -
java 虚拟机总结 【思维导图】
2012-12-22 20:11 2092java虚拟机总结思维导图: 参考《深入理解jav ... -
Java虚拟机字节码执行引擎 【思维导图】
2012-12-22 19:51 1658java虚拟机字节码执行引擎思维导图总结: 参考《深入理 ... -
java 垃圾回收相关总结 【思维导图】
2012-12-21 19:03 3278java垃圾回收相关总结: 参考《深入理解java ... -
java并发中的延迟初始化
2012-12-12 19:17 4695在《java并发编程实战 ... -
java同步容器与并发容器
2012-12-09 18:07 4355何为同步容器:可以简 ... -
一个看似线程安全的示例
2012-12-09 14:56 5064在《java并发编程实战》第四章4.4.1节给出了一个程序示 ... -
多线程中的long和double
2012-12-08 19:26 4193在看一些代码的时候,会发现在定义long型和double型的 ... -
多线程中共享对象的可见性
2012-12-08 18:52 5131在阅读《java并发编程实战》的第三章的时候,看到书中的一个 ... -
一个快速、轻量级 Collection 库 Trove
2012-12-07 09:35 3752Trove一个快速、轻量级针对java原子类型(byte,i ... -
java 中的Unsafe
2012-12-05 22:25 32737在阅读AtomicInteger的源码时,看到了这个类:su ... -
在ubuntu10上编译Thrift0.8.0
2012-08-01 15:34 2151下载thrift0.8.0 ,地址: http:// ... -
生活小工具--记账小助手1.0发布
2012-05-31 15:08 1721因为自己平时喜欢记账,把每日的消费情况都记录下来,所以希望找 ... -
话费速查升级版v1.3发布
2012-05-04 12:47 1432前段时间开发了一个话费速查的小应用,最近一直保持每周更新一个 ... -
编译zeromq的java绑定:jzmq
2012-05-03 22:47 135391、 下载zeromq源码:http://www.ze ... -
Android软件包静默安装小应用 - 附源码
2012-04-21 20:50 12408老早之前,写了一个android软件包静默安装的应用,放在工 ... -
最方便的联通话费,余额查询软件来了! --- 联通话费速查v1.2
2012-04-12 18:01 4023软件介绍: 联通话费速查是一款针对联通 ...
相关推荐
VTK,全称为 Visualization Toolkit,是一款强大的开源可视化库,尤其在3D图形渲染和科学数据可视化方面具有广泛的应用。...希望这篇“初学者的VTK学习笔记”能对你有所帮助,祝你在VTK的学习旅程上取得成功!
### VTK学习笔记知识点概述 #### 一、VTK简介与背景 VTK(Visualization Toolkit)是一种开源的软件系统,用于三维图形处理和可视化技术。它由Kitware开发,并广泛应用于科学计算、医学图像处理等领域。VTK的核心...
另外,VTK学习笔记可能是个人或社区对学习过程的记录,可能包含了问题解决的经验、技巧和代码片段,是宝贵的实践经验总结。示例程序则提供了直接运行的代码,可以加深对VTK的理解,通过实践来验证理论知识。 学习...
vtk学习笔记 vtk是The Visualization Toolkit的简称,是一个开源的、跨平台的科学可视化工具包。vtk是一个基于对象的 API,提供了大量的示例和文档,帮助用户快速上手。vtk的主要应用场景包括科学计算、数据分析、...
### VTK 重磅教程知识点概览 #### 一、VTK编程简介 VTK (Visualization Toolkit) 是一款开源的软件系统,专为三...通过以上各部分的学习,可以全面掌握VTK的基础知识和高级技术,从而能够灵活运用VTK来解决实际问题。
通过深入研究这些资料,开发者不仅可以掌握VTK的基本用法,还能学习到如何利用VTK实现复杂的数据可视化,提升在科研、工程项目的可视化能力。无论你是初学者还是经验丰富的开发者,这份资源都将是你探索三维可视化的...
在“VTK编程简介.pps”文件中,可能包含了 VTK 编程的基本概念和实例演示,如如何创建简单的渲染窗口、添加几何对象、设置光照和相机参数等。这类教程通常以逐步的方式引导读者掌握基本的 VTK 编程技巧。 ...
VTK9.0examples全解析.pdf中包含了大量示例,涵盖了从基本的几何对象创建到复杂的数据结构可视化,以及交互式图形界面的构建。你将学习如何使用VTK的基本类,如Actor、Mapper和Renderer来创建3D场景,以及如何利用...