zoukankan      html  css  js  c++  java
  • 科学计算三维可视化---TVTK入门(创建和显示三维对象)

    一:创建一个基本的三维对象

    (一)长方体操作

    traits:就是TVTK对象的属性

     

    (1)对象属性操作

    >>> from tvtk.api import tvtk
    >>> s = tvtk.CubeSource(x_length=1.0,y_length=2.0,z_length=3.0)
    >>> print(s)
    >>> s = tvtk.CubeSource(x_length=1.0,y_length=2.0,z_length=3.0)
    >>> print(s)
    vtkCubeSource (00000000004D4FC0)
      Debug: Off
      Modified Time: 1903583
      Reference Count: 2
      Registered Events:
        Registered Observers:
          vtkObserver (000000000D7E0EE0)
            Event: 33
            EventName: ModifiedEvent
            Command: 00000000121045F0
            Priority: 0
            Tag: 1
      Executive: 000000000D5E32D0
      ErrorCode: No error
      Information: 0000000000481710
      AbortExecute: Off
      Progress: 0
      Progress Text: (None)
      X Length: 1
      Y Length: 2
      Z Length: 3
      Center: (0, 0, 0)
      Output Points Precision: 0
    输出数据
    >>> s.center    #所在坐标系的原点
    array([0., 0., 0.])
    >>> s.x_length   #x轴长度
    1.0
    >>> s.y_length   #y轴长度
    2.0
    >>> s.z_length   #z轴长度
    3.0
    >>> s.output_points_precision  #对象的精度
    0

     (2)对象方法操作

    (二)其他基本三维对象了解

    >>> from tvtk.api import tvtk
    >>> s = tvtk.ConeSource(height=3.0,radius=1.0,resolution=36)  #高度3.0,底面圆半径1.0,底面圆分辨率36(使用36边形近似一个圆形)
    >>> s.height
    3.0
    >>> s.radius
    1.0
    >>> s.resolution
    36
    >>> s.center
    array([0., 0., 0.])
    >>> print(s)
    vtkConeSource (0000000002F71530)
      Debug: Off
      Modified Time: 1903620
      Reference Count: 2
      Registered Events:
        Registered Observers:
          vtkObserver (000000000D7E0430)
            Event: 33
            EventName: ModifiedEvent
            Command: 000000000D4C0CD0
            Priority: 0
            Tag: 1
      Executive: 000000000D2998D0
      ErrorCode: No error
      Information: 000000000D3820C0
      AbortExecute: Off
      Progress: 0
      Progress Text: (None)
      Resolution: 36
      Height: 3
      Radius: 1
      Capping: On
      Center: (0, 0, 0)
      Direction: (1, 0, 0)
      Output Points Precision: 0

    二:显示一个三维对象

    在二维屏幕中显示一个三维对象,需要一个十分复杂的映射过程,特别是与用户交互的时候

    (一)显示一个长方体

    from tvtk.api import tvtk
    
    #创建一个长方体数据源,设置其长宽高
    s = tvtk.CubeSource(x_length=1.0,y_length=2.0,z_length=3.0)
    #使用PolyDataMapper(映射器)将数据转化为图形数据
    m = tvtk.PolyDataMapper(input_connection=s.output_port) #将数据源的输出赋给映射器的输入
    #创建一个Actor
    a = tvtk.Actor(mapper=m)    #是一个实体
    #创建一个Renderer(渲染器),将Actor添加进去
    r = tvtk.Renderer(background=(0,0,0))   #显示背景设为黑色
    r.add_actor(a)  #将Actor添加进去
    #创建一个RenderWindow(窗口),将Renderer添加进去
    w = tvtk.RenderWindow(size=(300,300))   #创建一个显示窗口
    w.add_renderer(r)   #将建立的渲染器加入窗口
    #创建一个RenderWindowInteractor(窗口的交互工具)
    i = tvtk.RenderWindowInteractor(render_window=w)    #创建一个交互工具,将窗口加入交互
    #开启交互
    i.initialize()
    i.start()

  • 相关阅读:
    学习攻略丨如何进阶为一名Web安全高手?
    审计篇丨PHPcms9.6.3后台XSS审计
    新手篇丨Python任意网段Web端口信息探测工具
    ZZZPHP1.61 代码审计-从SQL注入到Getshell
    FOFA爬虫大法——API的简单利用
    菜鸟如何反转到资深Web安全工程师
    实战经验丨CTF中文件包含的技巧总结
    一名合格的Web安全工程师之成长路径
    CTF丨2019互联网安全城市巡回赛·西安站,我们来了!
    暖春许愿季丨i春秋给你送福利
  • 原文地址:https://www.cnblogs.com/ssyfj/p/9298914.html
Copyright © 2011-2022 走看看