请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

 找回密码
 立即注册
搜索
查看: 957|回复: 0

Python科学计算三维可视化-TVTK库入门:创建一个基本三维对象并显示

[复制链接]

79

主题

79

帖子

294

积分

VIP会员

积分
294
发表于 2017-11-4 12:01:12 | 显示全部楼层 |阅读模式
本帖最后由 chunge 于 2017-11-4 12:04 编辑

创建一个基本三维对象s = tvtk.CubeSource(x_length=1.0, y_length=2.0, z_length=3.0)
CubeSource对象的属性
属性说明
s.x_length长方体对象在X轴方向的长度
s.y_length长方体对象在y轴方向的长度
s.z_length长方体对象在z轴方向的长度
s.center长方体对象所在坐标系的原点
s. output_points_precision长方体对象的精度
CubeSource对象的方法
VTK方法Tvtk说明
Set/GetXLength()x_length设置/获取长方体对象在X轴方向的长度
Set/GetYLength()y_length设置/获取长方体对象在Y轴方向的长度
Set/GetZLength()z_length设置/获取长方体对象在Z轴方向的长度
Set/GetCenter()center设置/获取长方体对象所在坐标系的原点
Tvtk库的基本三维对象
三维对象说明
CubeSource立方体三维对象数据源
ConeSource圆锥三维对象数据源
CylinderSource圆柱三维对象数据源
ArcSource圆弧三维对象数据源
ArrowSource箭头三维对象数据源
创建一个圆锥数据源>>> s = tvtk.ConeSource(height = 3.0,radius = 1.0,resolution = 36)    #高度、底面圆半径。底面圆分辨率
>>> s.height
3.0
>>> s.radius
1.0
>>> s.resolution
36
>>> s.center
array([ 0.,  0.,  0.])
>>> print(s)
vtkConeSource (0000020A25B7FE10)
  Debug: Off
  Modified Time: 133
  Reference Count: 2
  Registered Events:
    Registered Observers:
      vtkObserver (0000020A25B91260)
        Event: 33
        EventName: ModifiedEvent
        Command: 0000020A258E4490        Priority: 0
        Tag: 1
  Executive: 0000020A25BA0F80
  ErrorCode: No error
  Information: 0000020A25C6F240
  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

TVTK库显示一个三维对象
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)
# 创建一个RenderWindow(窗口),将Renderer添加进去
w = tvtk.RenderWindow(size=(300,300))
w.add_renderer(r)
# 创建一个RenderWindowInteractor(窗口的交互工具)
i = tvtk.RenderWindowInteractor(render_window=w)
# 开启交互
i.initialize()
i.start()


原始数据转换为屏幕上图像,TVTK对象共同协调完成:
tvtk.CubeSource
tvtk.PolyDataMapper
tvtk.Actor
tvtk.Renderer
tvtk.RenderWindow
tvtk.RenderWindowInteractor
在TVTK中,这种对象之间协调完成工作的过程被称作管线(Pipeline)。




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|京ICP备17047556号-1|大智能时代    

GMT+8, 2020-8-9 09:41 , Processed in 0.108113 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表