科学计算三维可视化---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:
Reference Count:
Registered Events:
Registered Observers:
vtkObserver (000000000D7E0EE0)
Event:
EventName: ModifiedEvent
Command: 00000000121045F0
Priority:
Tag:
Executive: 000000000D5E32D0
ErrorCode: No error
Information:
AbortExecute: Off
Progress:
Progress Text: (None)
X Length:
Y Length:
Z Length:
Center: (, , )
Output Points Precision:
输出数据
>>> s.center #所在坐标系的原点
array([., ., .])
>>> s.x_length #x轴长度
1.0
>>> s.y_length #y轴长度
2.0
>>> s.z_length #z轴长度
3.0
>>> s.output_points_precision #对象的精度
(2)对象方法操作

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

>>> from tvtk.api import tvtk
>>> s = tvtk.ConeSource(height=3.0,radius=1.0,resolution=) #高度3.0,底面圆半径1.0,底面圆分辨率36(使用36边形近似一个圆形)
>>> s.height
3.0
>>> s.radius
1.0
>>> s.resolution >>> s.center
array([., ., .])
>>> print(s)
vtkConeSource (0000000002F71530)
Debug: Off
Modified Time:
Reference Count:
Registered Events:
Registered Observers:
vtkObserver (000000000D7E0430)
Event:
EventName: ModifiedEvent
Command: 000000000D4C0CD0
Priority:
Tag:
Executive: 000000000D2998D0
ErrorCode: No error
Information: 000000000D3820C0
AbortExecute: Off
Progress:
Progress Text: (None)
Resolution:
Height:
Radius:
Capping: On
Center: (, , )
Direction: (, , )
Output Points Precision:
二:显示一个三维对象
在二维屏幕中显示一个三维对象,需要一个十分复杂的映射过程,特别是与用户交互的时候
(一)显示一个长方体
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=(,,)) #显示背景设为黑色
r.add_actor(a) #将Actor添加进去
#创建一个RenderWindow(窗口),将Renderer添加进去
w = tvtk.RenderWindow(size=(,)) #创建一个显示窗口
w.add_renderer(r) #将建立的渲染器加入窗口
#创建一个RenderWindowInteractor(窗口的交互工具)
i = tvtk.RenderWindowInteractor(render_window=w) #创建一个交互工具,将窗口加入交互
#开启交互
i.initialize()
i.start()


科学计算三维可视化---TVTK入门(创建和显示三维对象)的更多相关文章
- 科学计算三维可视化---TVTK入门(安装与测试)
推文:http://docs.huihoo.com/scipy/scipy-zh-cn/tvtk_intro.html 推文:http://code.enthought.com/pages/mayav ...
- 科学计算三维可视化---TVTK入门(数据加载)
一:数据加载 大多数可视化应用的数据并非是在TVTK库中构建的,很多都是通过接口读取外部数据文件 (一)使用vtkSTLReader来读取外部文件 .stl 文件是在计算机图形应用系统中,用于表示三角 ...
- 科学计算三维可视化---TVTK管线与数据加载(可视化管线和图像管线了解)
一:TVTK的管线 使用管线技术将TVTK中各个对象穿连起来,几乎所有渲染引擎都会提到管线技术 在TVTK中,每个对象只需要实现相对简单的任务,整个管线则能根据用户的需求,实现复杂的数据可视化处理. ...
- 科学计算三维可视化---TVTK库可视化实例
一:TVTK库可视化实例 Plot3D文件知识:PLOT3D 数据格式 PLOT3D文件分为网格文件(XYZ 文件), 空气动力学结果文件 (Q 文件)和通用结果文件(函数文件 + 函数名称文件).网 ...
- 科学计算三维可视化---Mayavi入门(Mayavi库的基本元素和绘图实例)
一:Mayavi库的基本元素 .处理图形可视化和图形操作的mlab模块 .操作管线对象,窗口对象的api (一)mlab模块 (二)mayavi的api 二:快速绘图实例 (一)mlab.mesh的使 ...
- 科学计算三维可视化---TVTK管线与数据加载(数据集)
一:数据集 三维可视化的第一步是选用合适的数据结构来表示数据,TVTK提供了多种表示不同种类数据的数据集 (一)数据集--ImageData >>> from tvtk.api im ...
- 『科学计算』可视化二元正态分布&3D科学可视化实战
二元正态分布可视化本体 由于近来一直再看kaggle的入门书(sklearn入门手册的感觉233),感觉对机器学习的理解加深了不少(实际上就只是调包能力加强了),联想到假期在python科学计算上也算 ...
- Numpy科学计算从放弃到入门
目录 一.什么是Numpy ndarray对象 相关文档 二.如何创建数组 三.如何访问数组 下标索引 切片索引 布尔型索引 整数索引 方形索引 四.如何做算数运算 五.如何使用统计函数 六.数组转置 ...
- python科学计算与可视化视频教程
目录: 下载链接:https://www.yinxiangit.com/616.html 第一单元TVTK入门-1.mp4第一单元TVTK入门-2.mp4第一单元TVTK入门-3.mp4 第一单元TV ...
随机推荐
- Hibernate连接数据库一直报NullPointerException
原来是少了这个.. //private HibernateTemplate hibernateTemplate; //少了下面 public HibernateTemplate getHibernat ...
- 超实用 1 ArrayList 链表
package ArrayList链表; import java.util.*; public class kk1 { /** * 作者:Mr.Fan * 功能:记住ArrayList链表 */ pu ...
- BUAA软工个人作业Week2-代码复审
一. 代码复审Check List 1.概要部分 代码能符合需求和规格说明么? 对-c的测试: 可以看到程序不支持1000000的数独终局输出,读源码发现常量MaxCounts定义为了100000,导 ...
- Alpha阶段敏捷冲刺⑤
1.提供当天站立式会议照片一张. 每个人的工作 (有work item 的ID),并将其记录在码云项目管理中: 昨天已完成的工作. 新增了一个登录界面 完成记账的分类模块 报表界面初步设计 今天要完成 ...
- 第六周PSP&进度条
团队项目PSP 一.表格: C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论alpha完成情况并总结 9:40 11:20 17 ...
- PHP 官方发行版扩展下载地址
PHP扩展下载 稳定发行版资源下载地址: https://windows.php.net/downloads/pecl/releases/ 常用扩展: 持续更新中 ... igbinary序列化/反序 ...
- 每个Android开发者必须知道的内存管理知识
原文:每个Android开发者必须知道的内存管理知识 拷贝在此处,以备后续查看. 相信一步步走过来的Android从业者,每个人都会遇到OOM的情况.如何避免和防范OOM的出现,对于每一个程序员来说确 ...
- jdbc -- 001 -- 一般方式创建数据库连接(oracle/mysql)
连接数据库步骤: 1. 注册驱动(只做一次) 2. 建立连接(Connection) 3. 创建执行SQL的语句(Statement) 4. 执行语句 5. 处理执行结果(ResultSet) 6. ...
- js模块化的总结
从前端打包的历史谈起 在很长的一段前端历史里,是不存在打包这个说法的.那个时候页面基本是纯静态的或者服务端输出的, 没有 AJAX,也没有 jQuery.Google 推出 Gmail 的时候(200 ...
- c++11 左值引用、右值引用
c++11 左值引用.右值引用 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #i ...