`
aswang
  • 浏览: 845422 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

vtk学习笔记 --- 基本对象使用

 
阅读更多

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

 

 

  • 大小: 26.9 KB
0
0
分享到:
评论

相关推荐

    初学者的VTK学习笔记

    VTK,全称为 Visualization Toolkit,是一款强大的开源可视化库,尤其在3D图形渲染和科学数据可视化方面具有广泛的应用。...希望这篇“初学者的VTK学习笔记”能对你有所帮助,祝你在VTK的学习旅程上取得成功!

    VTK学习笔记

    ### VTK学习笔记知识点概述 #### 一、VTK简介与背景 VTK(Visualization Toolkit)是一种开源的软件系统,用于三维图形处理和可视化技术。它由Kitware开发,并广泛应用于科学计算、医学图像处理等领域。VTK的核心...

    vtk资料包括VTK中文手册(中文VTK User's Guide(带书签))

    另外,VTK学习笔记可能是个人或社区对学习过程的记录,可能包含了问题解决的经验、技巧和代码片段,是宝贵的实践经验总结。示例程序则提供了直接运行的代码,可以加深对VTK的理解,通过实践来验证理论知识。 学习...

    vtk学习过程中写的笔记 对于初学者有用

    vtk学习笔记 vtk是The Visualization Toolkit的简称,是一个开源的、跨平台的科学可视化工具包。vtk是一个基于对象的 API,提供了大量的示例和文档,帮助用户快速上手。vtk的主要应用场景包括科学计算、数据分析、...

    VTK 重磅教程 从简单到复杂

    ### VTK 重磅教程知识点概览 #### 一、VTK编程简介 VTK (Visualization Toolkit) 是一款开源的软件系统,专为三...通过以上各部分的学习,可以全面掌握VTK的基础知识和高级技术,从而能够灵活运用VTK来解决实际问题。

    VTK资料(包含多个文件,文档)

    通过深入研究这些资料,开发者不仅可以掌握VTK的基本用法,还能学习到如何利用VTK实现复杂的数据可视化,提升在科研、工程项目的可视化能力。无论你是初学者还是经验丰富的开发者,这份资源都将是你探索三维可视化的...

    VTK编程简介.rar_ VTK_vtk_vtk 安装

    在“VTK编程简介.pps”文件中,可能包含了 VTK 编程的基本概念和实例演示,如如何创建简单的渲染窗口、添加几何对象、设置光照和相机参数等。这类教程通常以逐步的方式引导读者掌握基本的 VTK 编程技巧。 ...

    ITK VTK 好资料一网打尽

    VTK9.0examples全解析.pdf中包含了大量示例,涵盖了从基本的几何对象创建到复杂的数据结构可视化,以及交互式图形界面的构建。你将学习如何使用VTK的基本类,如Actor、Mapper和Renderer来创建3D场景,以及如何利用...

Global site tag (gtag.js) - Google Analytics