`
aswang
  • 浏览: 842737 次
  • 性别: 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`进行等值线绘制的基本流程。在实际应用中,你可能需要根据数据的特点和需求调整参数,优化渲染效果,或者添加更多的交互功能。对于初学者,理解和掌握这些基本概念是至关重要的,通过实践和调试,...

    VTK-9.1.0-cp38-cp38-win_amd64.zip

    VTK-9.1.0-cp38-cp38-win_amd64.zip 是针对Python 3.8版本且适用于64位Windows系统的VTK库的压缩包。这个版本的VTK提供了对现代计算机图形硬件的充分利用,支持复杂的三维渲染和交互操作。 "whl" 文件格式是Python...

    vtk-5.2.0-win32

    在VTK-5.2.0-win32这个压缩包中,主要的文件是`vtk-5.2.0-win32.exe`,这是一个可执行文件,用于在Windows系统上安装VTK库。这个安装程序将包含各种库文件、头文件、示例代码、文档等,以便开发者可以在自己的项目中...

    VTK-8.2.0-cp36-cp36m-win_amd64.zip

    VTK-8.2.0-cp36-cp36m-win_amd64.zip 是一个专为基于Windows x64平台设计的Python 3.6版本的VTK库压缩包。它包含了Python接口的VTK库,允许开发者在Python环境中进行高效的数据可视化。 此压缩包中的“VTK-8.2.0-cp...

    VTK-8.2.0-cp38-cp38-win_amd64

    VTK-8.2.0-cp38-cp38-win_amd64

    VTK-8.1.0-cp36-cp36m-win_amd64.whl

    VTK-8.1.0是安装mayavi-4.5.0+vtk81-cp36-cp36m-win_amd64.whl的基础模块,为后期numpy模块中图像的显示做铺垫。

    vtk-5.4.2-win32.exe安装程序

    The Visualization Toolkit (VTK) is an open-source, freely available software system for 3D computer graphics, image processing and visualization. VTK consists of a C++ class library and several ...

    VTK-7.1.1-cp36-cp36m-win32

    VTK-7.1.1-cp36-cp36m-win32

    VTK-5.0.1-control-1.1.zip

    VTK-5.0.1-control-1.1.zip 是一个特定版本的VTK控制模块的压缩包,适用于开发三维软件。在VTK中,"control"通常指的是用户界面和交互部分,它允许用户与三维可视化场景进行交互。 VTK的核心功能包括数据处理、几何...

    VTK用户手册-中文翻译版(带书签).pdf

    创建一个简单的示例需要使用VTK的API,例如vtkRenderWindow、vtkRenderer、vtkActor等,来创建一个基本的可视化场景。使用VTK交互功能可以实现交互式的可视化,可以使用vtkRenderWindowInteractor等类来实现。 过滤...

    VTK-9.0.1-cp36-cp36m-win_amd64

    VTK-9.0.1-cp36-cp36m-win_amd64

    VTK安装程序vtk-5.2.0-win32.exe

    VTK安装全部文件,从官方网站下载的最新版本5.2

    vtk用户手册-中文打印版.pdf

    VTK是一个开放的、面向对象的软件系统,主要功能是计算机图形学、可视化和图像处理。尽管它庞大和复杂,但它是为易学易用设计的,一旦你学会了基本的面向对象的设计和实现方法。

    Python库 | vtk-8.1.0-cp36-cp36m-win_amd64.whl

    资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:vtk-8.1.0-cp36-cp36m-win_amd64.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    VTK-8.2.0-install.zip

    VTK-8.2.0-install.zip 是一个包含了预编译的VTK库的压缩包,特别针对C++编程语言,并且已经与QT5框架进行了绑定,这意味着它可以方便地与Qt的图形用户界面组件进行集成,提供丰富的交互式3D可视化功能。 VTK库本身...

    Python库 | vtk-9.1.0rc4-cp39-cp39-win_amd64.whl

    **Python库vtk-9.1.0rc4-cp39-cp39-win_amd64.whl详解** 在Python编程中,库是至关重要的组成部分,它们提供了丰富的功能,帮助开发者快速高效地完成各种任务。`vtk`(Visualization Toolkit)就是这样一个库,专注...

    VTK-9.0.3-cp38-cp38-win_amd64

    VTK-9.0.3-cp38-cp38-win_amd64

    VTK-6.1.0-vc14-64.zip

    VTK-6.1.0-vc14-64.zip 是一个针对Visual Studio 2015(vc14)的64位版本的VTK库的压缩包。这个版本的VTK包含了各种组件和工具,用于在Windows平台上进行高性能的3D图形渲染和数据可视化。 VTK的核心特性包括: 1....

    VTK User's Guide(中文完整版)

    怎样使用VTK----------------------------------------------------------------------------------8 附加资源-----------------------------------------------------------------------------------------8 第2章 ...

Global site tag (gtag.js) - Google Analytics