三维可视化课程实验TVTK部分.docx

上传人:b****3 文档编号:24788637 上传时间:2023-06-01 格式:DOCX 页数:13 大小:191.73KB
下载 相关 举报
三维可视化课程实验TVTK部分.docx_第1页
第1页 / 共13页
三维可视化课程实验TVTK部分.docx_第2页
第2页 / 共13页
三维可视化课程实验TVTK部分.docx_第3页
第3页 / 共13页
三维可视化课程实验TVTK部分.docx_第4页
第4页 / 共13页
三维可视化课程实验TVTK部分.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

三维可视化课程实验TVTK部分.docx

《三维可视化课程实验TVTK部分.docx》由会员分享,可在线阅读,更多相关《三维可视化课程实验TVTK部分.docx(13页珍藏版)》请在冰豆网上搜索。

三维可视化课程实验TVTK部分.docx

三维可视化课程实验TVTK部分

TVTK部分

第一节创建一个基本三维对象

1.1CubeSource对象

三维对象变量s包含了构建三维长方体的所有信息

1.2Tvtk库的基本三维对象三维对象说明:

CubeSource立方体三维对象数据源ConeSource圆锥三维对象数据源CylinderSource圆柱三维对象数据源ArcSource圆弧三维对象数据源ArrowSource箭头三维对象数据源示例:

显示一个长方体

第二节TVTK的管线

2.1理解TVTK的管线

TVTK对象说明:

CubeSource通过程序内部计算输出一组描述长方体的数据(PolyData)

PolyDataMapperPolyData通过该映射器将数据映射为图形数据(mapper)

2.2用ivtk工具观察管线

使用ivtk显示立方体的程序:

程序运行结果:

光源

3.1

场景

第三节

Mayavi库的使用

Mayavi库的基本元素

Mayavi.mlab中的部分函数类别及说明:

绘图函数:

barchar、contour3d、contour_surf、flow、imshow、mesh、plot3d、points3d、quiver3d、surf、triangular_mesh

图形控制函:

clf、close、draw、figure、gcf、savefig、screenshot、sync_camera图形修饰函数:

colorbar、scalarbar、xlabel、ylabel、zlabel

相机控制函数:

move、pitch、roll、view、yaw

其他函数:

animate、axes、get_engine、show、set_engine

Mlab管线控制:

Open、set_vtk_src、adddataset、scalar_cut_plane

MayaviAPI中的部分函数类别及说明:

管线基础对象:

Scene、Source、Filter、ModuleManager、Module、PipelineBase、Engine

主视窗和UI对象:

DecoratedScene、MayaviScene、SceneEditor、MlabSceneModel、EngineView、EngineRichView

3.2绘图实例

运行结果:

实例二:

实例二运行结果:

第四节基于Numpy数组的绘图函数

4.1mlab对Numpy建立可视化过程

过程:

1、建立数据源

2、使用Filter(可选)

3、添加可视化模块

3D绘图函数-Points3d中的参数与说明:

OpcityVtk:

对象的整体透明度,该值为float型,默认为1.0;reset_zoom:

对新加入场景数据的放缩进行重置。

默认为True;resolution:

符号的分辨率,如球体的细分数,该值为整型,默认为8;scale_factor:

符号放缩的比例;

scale_mode:

符号的放缩模式,如vector、scalar、none;transparent:

根据标量值确定actor的透明度;vmax:

对colormap放缩的最大值;

vmin:

对colormap放缩的最小值;

4.23D绘图函数-surf

程序代码:

代码运行结果:

3D绘图函数-contour3d函数形式:

contour3d(scalars,⋯)

contour3d(x,y,z,scalars,⋯)网格上的数据用三维数据表示,X,Y,Z是三维坐标

4.3改变物体的外观

程序运行结果:

 

4.4鼠标选取操作鼠标选取:

on_mouse_pick(callback,type=‘point

Type:

'point','cell'or‘world'Button:

'Left','Middle'or‘RightRemove:

值为True则callbactk函数不起作用

',Button=‘Left',Remove=False)

第五节Mayavi可视化实例实例1:

Dragon绘制

实例运行结果:

实例二:

Canyon地形可视化

1.处理地形数据:

2.渲染地形数据

3.清空内存、创建窗口

程序运行结果:

第六节Traits基础

6.1Trait属性的功能

Trait库为Python对象的属性增加了类型定义功能。

同时还提供了以下功能:

1.初始化:

每个Trait属性都有自己的默认值;

2.验证:

Trait属性有明确的类型定义,满足定义的值才能赋值给属性;

3.代理:

Trait属性值可以代理给其他对象的属性;

4.监听:

Trait属性值发生变化时,运行事先指定的函数;

5.可视化:

拥有Trait属性的对象,可生成编辑Trait属性的界面;

6.2Event和button属性

Event属性功能:

当任何值对Event属性赋值时;不存储属性值,所赋值将会被忽略;如果试图获取属性值会产生异常。

button属性:

具备Event事件处理功能

通过TraitsUI库,自动生成界面中的按钮控件

6.3TraitsUI与Mayavi应用实例

建立mayavi窗口步骤

1、建立从HasTraits继承的类

1.1建立MlabSceneModel场景实例scene

1.2建立View视图

1.3定义__init__函数,生成数据

2、建立类的实例,调用configure_traits()方法实例:

6.4基于交互控制的Mayavi窗口框架步骤

1、定义从HasTraits继承的类

1.1定义窗口中的变量

1.2定义监听函数、更新视图绘制

1.3定义视图的布局

2、调用configure_traits()

第七节Scipy

7.1SciPy拟合与优化-optimize

optimize模块提供了许多数值优化算法,可以实现

1.非线性方程组求解

2.数据拟合

3.函数最小值

SciPy插值-interpolate模块提供了许多对数据进行插值运算的函数:

1.B样条曲线插值

2.外推

3.Spline拟合(UnivariateSpline插值运算)

4.二维插值运算等

7.2SciPy线性代数-linalg

Numpy和SciPy都提供了线性代数函数库linalg,SciPy更为全面:

1.解线性方程组

2.最小二乘解

3.特征值和特征向量

4.奇异值分解

7.3Scipy可视化实例---凸包的二维/三维可视化

凸包:

指N维空间中的一个区域,该区域中任意两点之间的线段都完全被包含在该区域之中,二维平面上的凸多边形就是典型的凸包。

程序代码:

写入文件:

程序运行结果:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1