尔雅Python科学计算三维可视化_1答案(学习通2023课后作业答案)

尔雅Python科学计算三维可视化_1答案(学习通2023课后作业答案)

【第一周】三维可视之基础运用

单元测验

1、尔雅TVTK库是科学由以下哪个库封装的:
A、TraitsUI
B、计算OpenCV
C、视化Mayavi
D、答案VTK

2、学习TVTK创建对象时,通课使用的关键字参数都是什么类型的:
A、Traits
B、后作Array
C、业答Scalar
D、尔雅Cell

3、科学TVTK使用以下哪个对象将原始数据转换为图形数据:
A、计算Mapper
B、视化Actor
C、答案Renderer
D、学习RenderWindow

4、管线的数据结构是树形的,这个树的根节点是以下哪个对象:
A、Mapper
B、Camera
C、Renderer
D、RenderWindow

5、以下哪种数据集可以表示混合数据类型:
A、ImageData
B、RectilinearGrid
C、StructuredGrid
D、PloyData

6、如果有一组间距不均匀的网格数据,用什么数据集表示最方便:
A、ImageData
B、RectilinearGrid
C、StructuredGrid
D、PollyData

7、以下哪个对象描述了场景中实体的大小和位置:
A、Actor
B、Renderer
C、RenderWindow
D、RenderWindowInteractor

8、三维可视化的主要方法有:
A、p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px '.PingFang SC'; color: #454545} 立体图法
B、p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px '.PingFang SC'; color: #454545} 面绘制方法
C、p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px '.PingFang SC'; color: #454545} 体绘制方法
D、颜色映射法

9、TVTK对图形数据进行可视化的过程涉及以下哪几个对象的协作:
A、Mapper
B、Actor
C、Renderer
D、RenderWindow

10、TVTK将原始数据转换为屏幕上的图像的过程涉及哪几条管线(Pipeline):
A、可视化管线
B、数据管线
C、图形管线
D、体绘制管线

11、Ivtk工具封装了以下哪几个窗口:
A、场景绘制窗口
B、场景工具条
C、管线浏览器
D、Python命令行

12、TVTK可以读取以下哪几种文件类型:
A、Obj
B、Ply
C、STL
D、FBX

【第二周】三维可视之基础实战

单元测验

1、等值面绘制方法适合什么类型的数据集:
A、正交网格
B、标量场
C、矢量场
D、平面图像

2、流线绘制方法适合什么类型的数据集:
A、正交网格
B、标量场
C、矢量场
D、平面图像

3、TVTK中降低采样率,提高绘制效率的对象是哪个?
A、Glyph3D
B、FilterPoints
C、MaskPoints
D、Plot3D

4、等值面使用系统默认的颜色映射表:
A、最大值映射为红色
B、最大值映射为蓝色
C、最大值映射为白色
D、最大值映射为黑色

5、关于等值面绘制透明度描述不正确的是:
A、为了便于观察等值面的内部构造
B、透明度是Actor对象的属性
C、透明度是标量场数据值的属性
D、透明度为1.0代表不透明

6、Glyph3D的作用是?
A、可以对任意的PolyData数据进行复制
B、可以对任意符号进行复制
C、代表一个符号
D、代表一个箭头

7、哪些方法可以用来观察流体的密度?
A、切面
B、等值面
C、箭头的大小
D、箭头的方向

8、关于ContourFilter对象描述正确的是?
A、set_value方法可以创建一个等值面
B、ContourFilter可以用来绘制等值面
C、处理规则格网数据
D、处理不规则格网数据

第二周作业

1、在创建一个基本的三维对象时,s=tvtk.ConeSource(),其中该方法的参数是什么?

2、在显示一个基本的三维对象时,RenderWindowInteractor对象是渲染用的图形窗口。这句话正确吗?为什么?

3、将原始数据加工成图形数据的过程是图形管线。这句话正确吗?为什么?

4、间距不均匀的网格,所有点都在正交的网格上的数据集是StructuredGrid。这句话正确吗?为什么?

5、对矢量数据进行降采样的方法是ContourFilter()。这句话正确吗?为什么?

【第三周】三维可视之高级进阶

单元测验

1、Mayavi是基于哪个库开发的:
A、TraitsUI
B、OpenCV
C、VTK
D、TVTK

2、mayavi.mlab模块的主要功能是什么:
A、操作管线对象
B、操作窗口和UI对象
C、图形可视化及视图操作
D、数据处理

3、Mayavi管线树状图的最顶层是哪个对象:
A、Scene
B、Sources
C、Color and legends
D、Surface

4、下面哪个函数适合矢量数据集的绘制:
A、Contour3d
B、Quiver3d
C、Mesh
D、PLot3d

5、下面哪个函数适合等值面的绘制:
A、Contour3d
B、Quiver3d
C、Mesh
D、Plot3d

6、创建或访问一个Scene,需要调用以下哪个对象:
A、Draw
B、Figure
C、View
D、Show_Pipeline

7、控制当前摄像机的视点,需要调用以下哪个对象:
A、Draw
B、Figure
C、View
D、Show_pipeline

8、显示mayavi的管线对话框,需要调用以下哪个对象:
A、Draw
B、Figure
C、View
D、Show_pipeline

9、mlab可以通过传递以下哪些representation关键字,指定不同的表现形式:
A、 volume
B、Surface
C、wireframe
D、points

10、mlab提供哪些2D数据集的3D绘制函数:
A、imshow
B、surf
C、plot3d
D、points3d

11、下面哪些函数可自动将标量信息转化为colormap:
A、Barchart
B、Plot3d
C、Surf
D、Points3d

12、mlab对标量数据的可视化提供什么观测方式:
A、iso_surfaces等值面分析
B、vector_cut_plane切面分析
C、image_plane_widget切面分析
D、flow流线轨迹分析

13、mlab对矢量数据的可视化提供什么观测方式:
A、Iso_surfaces等值面分析
B、vector_cut_plane切面分析
C、image_plane_widget切面分析
D、flow流线轨迹分析

【第四周】三维可视之进阶实战

单元测验

1、下面说法正确的是:
A、程序操作文件时,打开处理完成后要关闭。
B、程序操作文件时,打开处理完成后要删除。
C、程序操作文件时,打开处理完成后,系统会自动关闭它。
D、程序操作文件时,打开处理完成后,系统会自动删除它。

2、join()的作用是:
A、将字符串连接在一起。
B、多个路径组合后返回。
C、将字符串加入到字符串集合。
D、它是mayavi中的一个函数。

3、背面剔除的作用描述错误的是:
A、如果不是透明物体,设置与否并不影响视觉效果。
B、设置背面剔除可以加快绘制速度。
C、设置背面剔除可以更好的显示透明效果
D、背面剔除会降低绘制速度

4、在绘制地形时:
A、gist_earth的颜色映射需要根据高程数据计算得到。
B、gist_earth存储了全球地形的所有颜色信息。
C、高程数据的特点是只有高度值,没有坐标值。
D、高程数据即我们平时说的卫星图像。

5、下面说法正确的是:
A、归根节点,三维模型文件定义的是顶点的空间位置信息和连接关系信息。
B、采用surface绘制方式,将摄像机调整到模型内部,会发现“模型中间是空心的”。
C、三维模型文件ply的渲染,实际是组成模型表面每一个面片的渲染。
D、三维模型文件内部定义的本质都是一样的,只是表达方式不同。

6、下面关于LOD描述正确的是:
A、LOD是层次细节技术。
B、LOD可以帮助计算机实现实时绘制。
C、LOD可以设置1级也可以设置10级。
D、模型有LOD,图像没有LOD。

7、下面描述正确的是:
A、我们眼睛看到屏幕的视角,就是当前摄像机的视角。
B、场景一旦绘制出来,就不需要再绘制了,用鼠标与场景交互的内容都是之前已经绘制好的。
C、视点改变并不意味着被观察物体的位置发生了变化。
D、摄像机的焦点一般设在你要观察的物体上。

第三周-第四周单元作业

1、为mayavi可视化提供数据的mayavi管线层级是Filters,这句话正确吗?为什么?

2、基于1维Numpy数组x、y、z提供的三维坐标数据,绘制线图形的函数是Point3D()。这句话正确吗?为什么?

3、mayavi管线中处于最顶层表示场景的对象是什么?获取当前场景的方法是什么?

4、3D绘图函数Point3D()中,根据标量值确定actor透明度的参数是opcity。这句话正确吗?为什么?

5、3D绘图函数中,绘制由三个二维数组x、y、z描述坐标点的网格平面的方法是imshow()。这句话正确吗?为什么?

6、3D绘图函数中,三维矢量数据的可视化的方法是contour3d()。这句话正确吗?为什么?

7、在鼠标选取操作中,on_mouse_pick()方法返回值是什么?

8、mlab管线中,用来进行数据变换的层级是什么?用来实现数据可视化的层级是什么?

9、在mlab管线的modules层级中,用来对VTK dataset和mayavi sources建立外表面的方法是surface()。这句话正确吗?为什么?

10、在mayavi可视化实例三中,绘制大洲边界时大洲边界粗糙的解决办法是什么?

【第五周】三维可视之交互界面

单元测验

1、如果执行以下代码,会输出什么值: from traits.api import HasTraits, Color class Circle(HasTraits): color = Color c = Circle() c.color = 'blue' print(c.color.getRgb())
A、(255,0,0,255)
B、(0,255,0,255)
C、(0,0,255,255)
D、(255,255,255,255)

2、在一个Trait属性的类中定义一个成员变量area = Property(depends_on = [‘a’]),当对A经行赋值时,会调用以下哪个函数:
A、_get_area
B、_set_area
C、_ area_changed
D、_a_changed

3、TraitsUI的设计使用了什么架构模型:
A、ORM
B、MVC
C、MVP
D、MVVM

4、可以通过哪个对象传递参数给界面:
A、Model
B、Group
C、Item
D、UIInfo

5、可以通过哪个对象对界面进行组织分类:
A、Model
B、Group
C、Item
D、UIInfo

6、控件的哪种样式能展示最多功能:
A、Simple
B、Custom
C、Text
D、Reaonly

7、Trait属性有哪些主要功能:
A、初始化
B、验证
C、代理
D、监听
E、可视化

8、Trait的监听功能有哪些监听模式:
A、静态监听
B、动态监听
C、持续监听
D、触发监听

9、静态监听函数可以有以下哪几个参数:
A、Name
B、Type
C、Old
D、New

10、以下那种情况将触发Event属性的监听事件:
A、初始化
B、赋值,值不改变
C、赋值,值改变
D、读取值

11、traitsui.menu中预定义了哪些按钮:
A、OKCancelButtons
B、ModelButtons
C、LiveButtons
D、NoButtons

12、每种控件有style属性,该属性都包含哪些值:
A、Simple
B、Custom
C、Text
D、Reaonly

13、HSplit相比Group,对哪几个参数设置了默认值:
A、Layout
B、Table
C、Orientation
D、Show_border

Python科学计算三维可视化期末考试

Python科学计算三维可视化-期末考试客观题试卷

1、TVTK创建对象时,使用的关键字参数都是什么类型的。
A、Traits
B、Array
C、Scalar
D、Cell

2、TVTK使用以下哪个对象将原始数据转换为图形数据。
A、Mapper
B、Actor
C、Renderer
D、RenderWindow

3、以下哪个对象描述了场景中实体的大小和位置。
A、Actor
B、Renderer
C、RenderWindow
D、RenderWindowInteracotr

4、以下哪种数据集可以表示混合数据类型。
A、ImageData
B、RectilinearGrid
C、StructuredGrid
D、PolyData

5、等值面绘制方法适合什么类型的数据集。
A、正交网格
B、标量场
C、矢量场
D、平面图像

6、mayavi.mlab模块的主要功能是什么。
A、操作管线对象
B、操作窗口和UI对象
C、图形可视化及视图操作
D、数据处理

7、创建或访问一个Scene,需要调用以下哪个函数。
A、Draw
B、Figure
C、View
D、Show_pipeline

8、显示mayavi的管线对话框,需要调用以下哪个函数。
A、Draw
B、Figure
C、View
D、Show_pipeline

9、下面哪个函数适合矢量数据集的绘制。
A、Contour3d
B、Quiver3d
C、Mesh
D、Plot3d

10、TVTK中降低采样率,提高绘制效率的对象是哪个。
A、Glyph3D
B、FilterPoints
C、MaskPoints
D、Plot3D

11、可以通过哪个对象传递参数给界面。
A、Model
B、Group
C、Item
D、UIInfo

12、控件的哪种样式能展示最多功能。
A、Simple
B、Custom
C、Text
D、Reaonly

13、在一个Trait属性的类中定义一个成员变量area = Property(depends_on = [‘a’]),当对A经行赋值时,会调用以下哪个函数。
A、_get_area
B、_set_area
C、_area_changed
D、_a_changed

14、如果想创建一个矢量场中箭头三维对象数据源,应使用哪个构造函数?
A、ArcSource()
B、ConeSource()
C、CylinderSource()
D、ArrowSource()

15、在可视化管线中,将数据转化为图形数据的方法是什么?
A、Renderer
B、RenderWindow
C、RenderWindowInteraction
D、PolyDataMapper

16、用ivtk工具观察管线时,表示tvtk Scene中照相机在三维空间中坐标的属性是什么?
A、clipping-plane
B、position
C、focal_point
D、view_up

17、由一系列的点、点之间的联系以及由点构成的多边形组成的数据集是什么?
A、ImageData
B、PolyData
C、StructuredGrid
D、RectilinearGrid

18、图形管线中,RenderWindow的作用是什么?
A、描述场景中的一个实体
B、表示渲染的场景
C、渲染用的图形窗口
D、给窗口提供用户交互功能

19、读取Plot3D文件使用的方法是什么?
A、MultiBlockPLOT3DReader()
B、OBJReader
C、PLYReader
D、STLReader

20、在标量数据可视化实例中,generate_values(n, grid.point_data.scalars.range)方法中属性n表示什么?
A、等值面的数量
B、等值面的颜色映射
C、等值面的范围
D、等值面实体的透明度

21、在矢量数据可视化实例中,在输入数据的每个点都拷贝一个符号的方法是什么?
A、Glyph3D()
B、MaskPoints()
C、ArrowSource()
D、PolyDataMapper()

22、Trait的监听功能有哪些监听模式。
A、静态监听
B、动态监听
C、持续监听
D、触发监听

23、以下那种情况将触发Event属性的监听事件。
A、初始化
B、赋值,值不改变
C、赋值,值改变
D、读取值

24、TVTK对图形数据进行可视化的过程涉及以下哪几个对象的协作。
A、Mapper
B、Actor
C、Renderer
D、RenderWindow

25、Ivtk工具封装了以下哪几个窗口。
A、场景绘制窗口
B、场景工具条
C、管线浏览器
D、Python命令行

26、mlab提供哪些2D数据集的3D绘图函数。
A、imshow
B、surf
C、plot3d
D、points3d

27、mlab对标量数据的可视化提供什么观测方式。
A、iso_surfaces等值面分析
B、vector_cut_plane切面分析
C、image_plane_widget切面分析
D、flow流线轨迹分析

28、Trait属性有哪些主要功能。
A、初始化
B、代理
C、继承
D、监听

29、TVTK和Mayavi创建对象时,使用的关键字参数都是Traits类型的。

30、TVTK和Mayavi都是基于VTK开发的。

31、TVTK可以读取FBX文件类型。

32、管线的数据结构是树形的,这个树的根节点是RenderWindow对象。

33、等值面绘制方法适合矢量场数据集。

34、Mayavi管线中Scene对象可以控制颜色的显示模式。

35、控制当前摄像机的视点,需要调用View函数。

36、mlab对矢量数据的可视化提供iso_surfaces等值面分析观测方式。

37、初始化将触发Event属性的监听事件。

38、TraitsUI的设计使用了MVC架构模型

Python科学计算三维可视化-期末考试主观题试卷

1、请参考SV09V02“TraitsUI可视化实例”,将本课程所学的TVTK或者Mayavi可视化例子,补充TraitsUI的交互控制,即通过TraitsUI的交互控制能够实现可视化视图中参数的相应改变,交互控件的种类不少于3种(如滑动条、文本框、颜色对话框)、交互控件数量不少于3个(如1个滑动条、1个文本框、1个颜色对话框)。要求代码规范,有注释。 提交要求:请在下面的编辑框内提交程序运行截图,请在附件里提交.py的rar或者zip压缩文件,命名要求为"昵称.rar"或者"昵称.zip" 注意:提交不规范者会酌情减分。

学习通Python科学计算三维可视化_1

Python是一种强大的编程语言,常用于数据分析和科学计算。在Python中,有很多用于数据可视化的库,其中比较重要的是matplotlib和Mayavi。

Matplotlib

Matplotlib是Python中最常用的2D图形库,它可以创建各种类型的图表,如线图、散点图、柱状图等,对于数据可视化非常方便。在Matplotlib中,最基本的绘图对象是Figure(图像)和Axes(坐标轴),通过这两个对象可以完成大部分的绘图任务。

下面是一个简单的Matplotlib 3D可视化例子:

```import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dfig = plt.figure()ax = fig.add_subplot(111, projection='3d')x = np.linspace(-5, 5, 100)y = np.linspace(-5, 5, 100)X, Y = np.meshgrid(x, y)Z = np.exp(-X**2 - Y**2)ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='coolwarm', linewidth=0, antialiased=False)plt.show()```

上面的代码首先定义了一个Figure对象和一个Axes对象,然后用numpy生成$x$和$y$的网格点坐标。最后利用这些坐标计算$z$值,并用plot_surface方法绘制出3D表面图。

Mayavi

Mayavi是一个基于VTK的3D可视化工具,它提供了更强的3D可视化功能,支持各种类型的3D图形,如表面图、等值面图、体绘制等。与Matplotlib不同的是,Mayavi的绘图对象是Scene(场景),它包含了所有的3D对象,如Actor、Module等。

下面是一个简单的Mayavi 3D可视化例子:

```import numpy as npfrom mayavi import mlabx, y, z = np.mgrid[-10:10:100j, -10:10:100j, -10:10:100j]s = np.sin(x*y*z)/(x*y*z)mlab.contour3d(s, contours=10, transparent=True)mlab.show()```

上面的代码生成了一个网格,并用numpy计算出网格点的$sin$函数值,最后用contour3d方法绘制出等值面图。可以看到,Mayavi的绘图对象是mlab,它提供了很多强大的3D绘图方法。

总结

Matplotlib和Mayavi是Python中常用的数据可视化工具,它们提供了丰富的绘图对象和方法,可以方便地生成各种类型的图表。在实际应用中,可以根据需要选择合适的工具。

学习通Python科学计算三维可视化_1

Python是一种强大的编程语言,常用于数据分析和科学计算。在Python中,有很多用于数据可视化的库,其中比较重要的是matplotlib和Mayavi。

Matplotlib

Matplotlib是Python中最常用的2D图形库,它可以创建各种类型的图表,如线图、散点图、柱状图等,对于数据可视化非常方便。在Matplotlib中,最基本的绘图对象是Figure(图像)和Axes(坐标轴),通过这两个对象可以完成大部分的绘图任务。

下面是一个简单的Matplotlib 3D可视化例子:

```import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dfig = plt.figure()ax = fig.add_subplot(111, projection='3d')x = np.linspace(-5, 5, 100)y = np.linspace(-5, 5, 100)X, Y = np.meshgrid(x, y)Z = np.exp(-X**2 - Y**2)ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='coolwarm', linewidth=0, antialiased=False)plt.show()```

上面的代码首先定义了一个Figure对象和一个Axes对象,然后用numpy生成$x$和$y$的网格点坐标。最后利用这些坐标计算$z$值,并用plot_surface方法绘制出3D表面图。

Mayavi

Mayavi是一个基于VTK的3D可视化工具,它提供了更强的3D可视化功能,支持各种类型的3D图形,如表面图、等值面图、体绘制等。与Matplotlib不同的是,Mayavi的绘图对象是Scene(场景),它包含了所有的3D对象,如Actor、Module等。

下面是一个简单的Mayavi 3D可视化例子:

```import numpy as npfrom mayavi import mlabx, y, z = np.mgrid[-10:10:100j, -10:10:100j, -10:10:100j]s = np.sin(x*y*z)/(x*y*z)mlab.contour3d(s, contours=10, transparent=True)mlab.show()```

上面的代码生成了一个网格,并用numpy计算出网格点的$sin$函数值,最后用contour3d方法绘制出等值面图。可以看到,Mayavi的绘图对象是mlab,它提供了很多强大的3D绘图方法。

总结

Matplotlib和Mayavi是Python中常用的数据可视化工具,它们提供了丰富的绘图对象和方法,可以方便地生成各种类型的图表。在实际应用中,可以根据需要选择合适的工具。