VTKexamples
Meshes
-
AddCell
创建一个多数据对象, 将几何图形和拓扑添加到多数据 -
BoundaryEdges
该过滤器将提取网格的边界边缘。 原始网格显示为特征边显示为红色。
-
CapClip
演示如何在多面体数据上使用剪裁和封顶。本示例说明如何在裁剪的vtkPolyData上生成“上限”。 在使用vtkClipPolyData裁剪后,它使用了巧妙的“技巧”将折线转换为多边形。 如果提供了多数据文件,它将对其进行上限。 否则,它将覆盖修剪的球体。
-
CellEdges
检测一个cell有几个边缘 -
ClipClosedSurface
演示多边形数据裁剪的使用
-
ClipDataSetWithPolyData
该示例显示了如何使用vtkClipDataSet裁剪具有任意polydata的vtkRectilinearGrid.vtkImplicitPolyDataDistance用于将多数据转换为隐式函数。发送到vtkClipDataSet之前,将评估网格的每个点。本示例使用vtkConeSource生成要使用的多数据,但是可以使用任何多数据,包括stl文件。
-
ClipFrustum
该示例使用vtkClipPolyData裁剪带有vtkCamera的视锥的模型。 使用vtkFrustumSource显示平截头体。
该示例进行如下操作:
1.读取vtkPolyData。 该示例可以读取任何受支持的多数据读取器。
2.生成模型视图。
3.恢复当前vtkCamera的视图视锥。
4.使用vtkPlanes :: SetFrustumPlanes创建一个隐式函数。
5.将vtkPlanes传递给vtkFrustumSource。
6.将vtkPlanes作为 ClipFunction 传递给vtkClipPolyData。
7.告诉vtkClipPolyData为内部和外部生成vtkPolyData。
8.呈现平截头体和修剪的模型。 内部模型是红色,外部模型是金。
-
ColoredElevationMa
与新的VTK通用数据阵列兼容 - Decimation
本示例使用渐进式抽取对网格进行抽取。 SetTargetReduction函数通过指定要删除的三角形的百分比(0,1),指定应减少的三角形数量。例如,如果网格包含100个三角形,并且调用了SetTargetReduction(.90),则抽取后大约会有10个三角形-减少90%。
vtkDecimatePro的实现与Proc Siggraph`92中的[[三角形网格的抽取]](https://www.researchgate.net/publication/225075888_Decimation_of_triangle_meshes)中最初描述的算法相似,但有三个主要区别。首先,该算法不一定保留网格的拓扑。其次,保证给出用户指定的网格缩小系数(只要未设置某些约束,请参见警告)。第三,它设置为生成渐进式网格,这是可以轻松传输和增量更新的操作流
- DeformPointSet
用多面体变形点集。 提供一个.vtp文件,看它是否变形。
- ElevationFilter
-
ExtractEdges
本示例说明如何从PolyData中提取边缘。 在这种情况下,我们将球体转换为线框球体。 我们演示了如何遍历结果边缘。 -
FillHoles
该过滤器在网格中查找孔并将其封闭。另外/ Cxx / Meshes / IdentifyHoles是填充孔,然后识别每个孔。
- FitToHeightMap
本示例使用vtkFitToHeightMapFilter覆盖由vtkPlaneSource生成的vtkPolyData的高度图。 平面的原点point1和point2是根据DEM的边界框计算的。 每个参数的z坐标都设置为DEM的高度。 在此平面上,示例使用vtkProbeFilter来应用来自DEM的标量高程数据。
vtkWarpScalar用于“提升” DEM网格。 将飞机悬停在变形的DEM网格上后,将使用相同的vtkLookupTable并排显示它们。
显示的网格是原始的(左),点拟合(中)和像元拟合(右)。
-
IdentifyHoles
本示例填充网格中的孔,然后将填充的孔提取为单独的区域。
该示例进行如下操作:
1.读取多数据。
2.用vtkFillHolesFilter填充孔。
3.创建一个包含填充孔的新多数据。 为此,我们依赖于以下事实:填充孔过滤器首先存储原始单元 格,然后添加填充孔的新单元格。 使用vtkCellIterator,我们跳过原始单元格,然后继续迭代以获 得新单元格。
4.在填充的多边形数据上使用vtkConnectivityFilter来识别各个孔。 -
InterpolateFieldDataDemo
提高分辨率,本示例使用vtkPointInterpolator探测具有较低分辨率数据集的高分辨率数据集。 然后,使用vtkInterpolateDataSetAttributes在原始低分辨率数据和所探测的低分辨率数据之间进行插值。
17.MatrixMathFilter
- OBBDicer
vtkOBBDicer过滤器将一个输入网格分解为多个片段。生成的网格包含标量点数据,这些数据可用于使用类似于vtkThresholdFilter的筛选器提取各个片段。这个例子显示了vtkOBBDicer的输出,每一块都有不同的颜色。如图 为切成4块 -
PointInterpolator
本例使用带高斯核(或其他核)的vtkPointInterpolator对探测区域内外的场进行更平滑的插值和外推。 -
QuadricClustering
该算法的一般方法是在空间的均匀分块中对顶点进行聚类,在每一个箱子中累积每个三角形的二次曲面(推到三角形顶点),然后使用累积的二次曲面确定箱子中单个顶点的最佳位置。 -
QuadricDecimation
本例使用二次聚类,基于Garland和Heckbert的工作,他们首先在Siggraph'97上提出了二次误差度量[使用二次误差度量的曲面简化
-
SimpleElevationFilter
简单高程过滤器
-
SolidClip
此示例将剪裁网格,并将“背面”特性应用于看起来具有实体内部的网格。就是加底座!!
24.SplitPolyData
vtkOBBDicer过滤器将一个输入网格分解为多个片段。生成的网格包含标量点数据,这些数据可用于使用类似于vtkThreshold的筛选器提取各个片段。此示例将每个片段存储到.vtp文件中。
- Subdivision
在本例中,从文件读取网格,然后使用线性细分进行细分。SetNumberOfSubdivisions(n)函数控制网格细分的次数。对于每个n,三角形的数量将增加大约4倍。例如,如果n=2,结果网格中的三角形数将是原始网格中三角形数的16倍。
26.SubdivisionDemo
和上一个类似
- TableBasedClipDataSetWithPolyData
此示例演示如何使用vtkTableBasedClipDataSet用任意多边形数据剪裁vtkrectineargrid。vtkImplicitPolyDataDistance用于将polydata转换为隐式函数。在发送到vtkTableBasedClipDataSet之前,对网格的每个点进行求值。本例使用vtkConeSource生成要使用的polydata,但是可以使用任何polydata,包括stl文件。
图像的左侧部分显示中心切片上的内部剪辑和距离场。右侧显示外部剪辑。当程序使用“e:键退出时,示例将报告内部剪辑和外部剪辑的单元格类型。
- TableBasedClipDataSetWithPolyData2
此示例演示如何使用vtkTableBasedClipDataSet剪裁包含棋盘格模式的vtkrectineargrid。
- Triangulate
切割三角形
30. WindowedSincPolyDataFilter
此示例演示如何平滑网格。
31.AnimateActors
3d动画
32. RotatingSphere
本示例演示了如何创建旋转球体。 计时器用于沿Z轴旋转球体。
Annotation
33. MultiLineText
此示例演示如何使用vtkTextMapper使用多行2D文本。它显示了多个对正以及单行和多行文本输入。
34. TextOrigin
这个例子演示了vtkVectorText和vtkFollower的使用。vtkvector文本用于创建三维批注。vtkFollower用于定位3D文本,并确保文本始终面向渲染器的活动摄影机
35. XYPlot
此例子数据下载需要翻墙,无法下载! 本示例演示了使用vtkXYPlotActor通过三种不同的技术显示三条探针线。 在此示例中,我们使用vtkPLOT3DReader加载数据。 我们正在使用vtkProbeFilter沿三个探针提取基础点数据线。
CompositeData
36. CompositePolyDataMapper
对指定块进行渲染
37. Generate2DAMRDataSetWithPulse
此实用程序代码生成一个简单的2D AMR数据集,其中心为高斯脉冲。 使用vtkXMLHierarchicalBoxDataSetWriter写入生成的AMR数据集。
38. Generate3DAMRDataSetWithPulse
该实用程序代码生成一个简单的3D AMR数据集,其中心为高斯脉冲。 使用vtkXMLHierarchicalBoxDataSetWriter写入生成的AMR数据集。
其源码在https://gitlab.kitware.com/vtk/vtk/blob/395857190c8453508d283958383bc38c9c2999bf/Examples/AMR/Cxx/Generate3DAMRDataSetWithPulse.cxx
39. MultiBlockDataSet
演示如何制作和使用VTK的MultiBlock类型数据,
40. OverlappingAMR
演示如何创建和填充VTK的重叠AMR网格类型数据
DataStructures
41. BuildLocatorFromKClosestPoints
从K个最近的点构建定位器
42. BuildOctree
建立坐标
43. ClosestNPoints
获取最近的几个点坐标
44. DataStructureComparison
在2010年8月20日之前,vtkModifiedBSPTree.cxx没有产生正确的数据表示形式。 更新vtk源代码树。此例子可以使用“ n”键和“ p”键来浏览树的级别。
45. IncrementalOctreePointLocator
寻找最近的测试点
46. KdTree
本示例演示如何使用vtkKdTree从vtkPoints对象构建树。 请注意,由于未调用AddDataSet或SetDataSet,因此无法使用GetDataSet。
47. KDTreeAccessPoints
这个例子演示了如何构建一个KDTree,获取它的点数,并通过ID获取这个点。
48. KDTreeFindPointsWithinRadius
KDTree查找半径内的点
49. KDTreeFindPointsWithinRadiusDemo
本例使用vtkKdTreePointLocator查找给定半径内的所有点。该示例生成“n”球体并查找球体半径内的所有点。输入vtkPolyData的vtkPointData设置每个球体的半径值。
这个例子需要一个或两个参数。第一个参数指定包含vtkPolyData的输入文件。第二个可选参数指定半径的使用数量。如果该数字小于6,则vtkSphereSource将显示为同心半透明球体。
50. KdTreePointLocatorClosestPoint
这个例子创建了一个由三个点组成的集合,从中构建一个KDTree,然后演示如何找到与查询点最近的点。
51. KDTreeTimingDemo
KDTree时序演示
52. ModifiedBSPTreeExtractCells
修改BSPtree提取的单元,引入定位器
53. ModifiedBSPTreeIntersectWithLine
修改的BSPTree与直线相交
54. ModifiedBSPTreeTimingDemo
优化后的BSPTree时序演示
55. OBBTreeExtractCells
使用OBBTree提取网格
56.OBBTreeIntersectWithLine
vtkOBBTree返回一条线和数据集的所有交点。 如果要最近的相交,则必须手动找到它。 在此示例中,我们创建一个球体,并将其与一条直线相交。
57. OBBTreeTimingDemo
OBBTree时序演示demo
58. OctreeClosestPoint
Octree结构的最近点提取
59. OctreeFindPointsWithinRadius
查找半径内的点
60. OctreeFindPointsWithinRadiusDemo
本例使用vtkOctreePointLocator查找给定半径内的所有点。该示例生成“n”球体并查找球体半径内的所有点。输入vtkPolyData的vtkPointData设置每个球体的半径值。
这个例子需要一个或两个参数。第一个参数指定包含vtkPolyData的输入文件。第二个可选参数指定半径的使用数量。如果该数字小于6,则vtkSphereSource将显示为同心半透明球体。
半径为7
半径为4
61. OctreeKClosestPoints
查找Octree k个最近点
61. OctreeTimingDemo
本示例在具有不同MaxPointsPerRegion的八叉树上运行几个最近的点查询,并绘制结果。
62. PointLocatorFindPointsWithinRadiusDemo
本示例使用vtkPointLocator查找给定半径内的所有点。该示例生成“ n”个球体,并找到球体半径内的所有点。输入vtkPolyData的vtkPointData设置每个球体的半径值。
该示例使用一个或两个参数。第一个参数指定包含vtkPolyData的输入文件。第二个可选参数指定半径使用的数量。如果数字<6,则vtkSphereSource将显示为同心的半透明球体。
r=7
r=4
63. StaticLocatorFindPointsWithinRadiusDemo
本示例使用vtkStaticPointLocator查找给定半径内的所有点。该示例生成“ n”个球体,并找到球体半径内的所有点。输入vtkPolyData的vtkPointData设置每个球体的半径值。
该示例使用一个或两个参数。第一个参数指定包含vtkPolyData的输入文件。第二个可选参数指定半径使用的数量。如果数字<6,则vtkSphereSource将显示为同心的半透明球体。
r=7
r=4
64. VisualizeKDTree
此演示使用滑块显示vtkKdTree的级别。 它用于快速相交测试,碰撞检测和点定位。
65. VisualizeModifiedBSPTree
该演示使用滑块显示vtkModifiedBSPTree的级别。 修改后的BSP树, 它用于渲染,碰撞检测和点定位。
66. VisualizeOBBTree
该演示使用滑块显示vtkOBBTree的级别。 OBBTree是[定向边界框树]。 它用于快速相交测试,碰撞检测。
Developers
67.AlgorithmFilter
本示例演示如何创建一个接受自定义类并返回自定义类的过滤器。 为了测试它是否正常工作,类vtkTest只是存储了一个名为'Value'的双精度实例化为4.5的值。 Example.cxx实例化一个vtkTest并将其值设置为5.6。 过滤器为此值加上1.0,因此作为vtkTestAlgorithmFilter输出的vtkTest应该包含值6.6。
68. AlgorithmSource
此示例演示如何创建返回自定义类的源。 为了测试它是否正常工作,类vtkTest1只是存储了一个实例化为4.5的双精度值“ Value”。 Example.cxx实例化一个生成vtkTest1的vtkTestSource。
69. FilterSelfProgress
帅选过滤器进度
70. GraphAlgorithmFilter
本示例演示如何创建一个将vtkGraph作为输入并生成vtkGraph作为输出的过滤器。
71. GraphAlgorithmSource
本示例生成一个vtkGraph作为输出,并计算输出个数。
72. ImageAlgorithmFilter
此示例演示如何为{{class | vtkImageAlgorithm}}过滤器设置管道,该过滤器将{{class | vtkImageData}}作为输入并生成另一个vtkImageData作为输出。 此特定示例创建一个2x2图像,并用“ 2”填充。 过滤器将(0,0)元素更改为5。
73. MultipleInputPorts
输出端口个数
74. ProgressReport
本示例演示了一个不带任何内容作为输入并产生vtkPolyData作为输出的阅读器。
Filtering
75. AppendFilter
本示例将点加载到多数据中,然后使用非结构化网格将它们合并。
应该扩展该示例以显示单元格也被组合。
76. CombinePolyData
本示例读取两个.vtp文件(如果未将其指定为命令行参数,则生成它们),将它们合并,然后将结果显示在屏幕上。
77. ConnectivityFilter
过滤器之间的连通操作
78. ConnectivityFilterDemo
本示例使用vtkPolyDataConnectivity将输入vtkPolyData分离为断开的区域。 每个区域都分配有唯一的颜色。 许多vtkNamedColors用于填充vtkLookupTable的一部分。 如果提取区域的数量大于指定颜色的数量,则使用随机数生成器生成其余颜色。
默认表示为Surface。 如果用户在渲染窗口中键入“ w”,则视图将被渲染为线框。 渲染器将使用隐藏线删除。
79. ConstrainedDelaunay2D
执行关于指定边界的2D Delaunay三角剖分。 本示例构建了一个10x10的点网格。 然后定义一个使用网格中点的多边形。 我们要对所有点进行三角剖分,多边形边界内的区域除外。 我们期望在生成的三角平面中有一个大小为4x3的矩形孔。
80. ContoursFromPolyData
本示例使用vtkCutter从PolyData生成轮廓。 将vtkPlane设置在PolyData的中心,并通过指定与中心平面距离的轮廓值来生成多个轮廓。 该示例使用文件名(如果提供)。 否则是使用vtkSphereSource。
81. Delaunay2D
本示例生成一组与XY网格对齐且具有随机高度(z值)的点。 Delaunay2D滤镜“神奇地”知道如何对这种类型的点集进行三角剖分,因为它默认将点投影到XY轴上,然后执行2D Delaunay三角剖分。 结果是输入点上的网格。
82. ExtractVisibleCells
提取可见部分
83. GaussianSplat
做高斯splat
84. Glyph2D
将多数据复制到输入集中的每个点。 我们使用六角形进行演示。
85. Glyph3D
本示例在每个点都应用一个对象。 我们使用一个多维数据集进行演示。
86. ImplicitBoolean
87. ImplicitBooleanDemo
隐式布尔演示
88.IterativeClosestPointsTransform
该演示产生的目标点(绿色)位于每个轴的原点和单位长度。 然后,它扰动点并将它们中的每个点都沿+ y方向移动.3 , 得到的点是“源”点(红色)。 然后,它尝试将源点移到尽可能靠近目标点的位置。 结果点以蓝色显示。 添加了噪点以使示例更真实。 而且,噪声确保了不会做错任何事情(即,意外地使用目标点作为结果,并声称在实际上什么也没发生的情况下完美地工作了!)
89. LandmarkTransform
本示例创建两个点集,假定它们是已知的有序对应关系。 然后将“源”转换为“目标”,并显示转换中使用的矩阵。
90. PerlinNoise
佩林噪声模型
91. ProgrammableFilter
可编程滤波器
92. ProgrammableSource
使用可编程源为[Lorenz系统]生成点
93. SelectionSource
(没有这条线,所有的点都会通过,因为我们将在下面选择的11个点是PointSource创建的多边形的一些点,因此单元格(默认情况下)会通过,因为它包含一些选定的点 ,因此所有点(属于多边形的50个点)也都通过。)
94. SurfaceFromUnorganizedPoints
本示例在球体上创建点,然后通过这些点找到曲面。 如果提供了可选的多数据文件,则示例将对该多数据中的点进行操作。
95. SurfaceFromUnorganizedPointsWithPostProc
本示例是对先前发布于以下示例的示例的扩展:
[根据非组织点创建曲面(SurfaceFromUnorganizedPoints)
目标还是再次使用vtkSurfaceReconstructionFilter从一组点构造一个曲面。
但是,vtkSurfaceReconstructionFilter的直接输出与原始点集的空间位置不匹配。
取而代之的是在两者之间进行比例转换和转换。
为了解决这个问题,在此示例中,我们添加了后变换,以将重构的曲面移回原始点的位置,这在某些情况下可能更有利。
96. TransformPolyData
本示例演示如何将变换应用于数据集。 它使用vtkTransformPolyDataFilter,但对于不同类型的数据集(包括vtkUnstructuredGrid和vtkStructuredGrid),可以将其替换为vtkTransformFilter。 vtkTransformFilter也可以与vtkPolyData一起使用)。
97. TriangulateTerrainMap
本示例在10x10网格(地形图)上生成高度(z值)并对这些点进行三角测量。
98. VectorFieldNonZeroExtraction
矢量场非零提取
99.VertexGlyphFilter
本示例创建一组点,并使用vtkVertexGlyphFilter在每个点处添加一个顶点。
100. WarpTo
扭曲线
GeometricObjects
101. Arrow
vtkArrowSource对象将圆柱附加到圆锥以形成箭头。
轴基始终为(0,0,0)。 箭头尖始终为(1,0,0)。 如果“ Invert”为true,则末端翻转,即tip在(0,0,0),而base在(1,0,0)。
圆锥和轴的分辨率可以设置,默认为6。
圆锥和轴的半径可以设置,默认为0.03和0.1。 尖端的长度也可以设置,默认为0.35。
102. Axes
本示例说明如何在3D模式下放置vtkAxesActor。 请注意,vtkAxesActor的位置和方向是通过用户变换完成的。
103. Cell3DDemonstration
这是如何使用从vtkCell3D派生的类构造和显示几何对象的演示。 对于每个对象,我们指定点和单元格ID。
由此我们创建了一个非结构化的网格。 在某些情况下,会使用vtkCellArray并将结果添加到非结构化网格中,请参阅: MakePolyhedron()和 MakeTetrahedron()。
还证明了使用矢量来保存非结构化网格,映射器,actor和渲染器。
然后将生成的对象显示在网格中。
104. CellTypeSource
本示例使用vtkCellTypeSource生成vtkUnstructuredGrid。 如果一个单元格未填充矩形区域或体积,则将生成多个单元格。 例如,vtkTetra需要12个单元来填充一个多维数据集。 vtkTriangle需要两个单元来填充一个正方形。 vtkCellTypeSource生成一组统一的坐标。 该示例扰乱了这些坐标以说明vtkTessellatorFilter的结果。 此外,每个单元格都通过vtkShrinkFilter传递以帮助识别单元格。 每个生成的单元格也具有唯一的颜色。
该示例采用一个可选参数,即vtkCell名称。
105. Circle
圆形只是正多边形的极限情况。 我们将vtkRegularPolygonSource与大量Sides一起使用以近似圆。
106. ColoredLines
显示两行,每行具有不同的颜色。
107. Cone
vtkConeSource对象创建一个以指定点为中心并指向指定方向的圆锥体。 (默认情况下,中心是原点,方向是x轴。)
根据此对象的分辨率,将创建不同的表示形式。 如果resolution = 0,则创建一条线; 如果resolution = 1,则创建一个三角形; 如果resolution = 2,则创建两个交叉的三角形。
对于大于2的分辨率,将创建一个3D圆锥体(侧面的分辨率数)。
也可以控制锥体的底部是否被(分辨率端)多边形覆盖,并指定锥体的高度和半径。
108. ConeDemo
vtkConeSource对象创建一个以指定点为中心并指向指定方向的圆锥体。 (默认情况下,中心是原点,方向是x轴。)
根据此对象的分辨率,将创建不同的表示形式。 如果resolution = 0,则创建一条线; 如果resolution = 1,则创建一个三角形; 如果resolution = 2,则创建两个交叉的三角形。
对于大于2的分辨率,将创建一个3D圆锥体(侧面的分辨率数)。
也可以控制锥体的底部是否被(分辨率端)多边形覆盖,并指定锥体的高度和半径。
该示例显示了分辨率为0、1、2和3的圆锥体。
!!! 提示“样式”
本示例在示例开始时收集所有颜色定义。 这使得无需搜索代码即可更轻松地更改颜色。
109. ConvexPointSet
vtkConvexPointSet对象表示由一组凸点定义的3D单元。 这样的单元的一个例子是八分圆(来自八叉树)。
vtkConvexPointSet使用有序三角剖分方法(vtkOrderedTriangulator)来创建保证在共享面之间兼容的三角剖分。
110. Cube
这基于C ++示例[Examples / DataManipulation / Cxx / Cube.cxx](http://vtk.org/gitweb?p=VTK.git;a=blob;f=Examples/DataManipulation/Cxx/Cube.cxx )在VTK源代码分发中。
它说明了手动使用vtkPolyData来构建多维数据集,并且与使用vtkCubeSource的Wiki示例[Cube1.cxx](/ Cxx / GeometricObjects / Cube1)和[Cube1.py](/ Python / GeometricObjects / Cube1)不同。
111. Cube1
显示一个多维数据集。
一个很好的简单示例演示了VTK管道的操作。
112. Cylinder
vtkCylinderSource对象创建一个以Center为中心的多边形圆柱。
圆柱体的轴沿全局y轴对齐。 可以指定圆柱体的高度和半径以及边数。
也可以控制圆柱体是开放式的还是有盖的。 如果具有圆柱体的端点,则应使用vtkLineSource,然后使用vtkTubeFilter代替vtkCylinderSource。
113. CylinderExample
本示例创建了一个最小的可视化程序,演示了VTK的基本渲染和管道创建。
114. Disk
vtkDiskSource对象创建一个多边形磁盘,该磁盘的中心有一个孔。
磁盘的高度为零。 用户可以指定圆盘的内半径和外半径,以及多边形表示的径向和周向分辨率。
115. Dodecahedron
创建12面体
116. EllipticalCylinder
该示例创建一个椭圆形横截面并将其存储在vtkPolyData中。 然后,vtkLinearExtrusionFilter通过沿矢量拉伸vtkPolyLine来创建椭圆圆柱。 该示例设置vtkActor的backface属性以显示圆柱体的正面和背面。
117. EllipticalCylinderDemo
该示例显示了构成椭圆圆柱体基础的vtkPolyLine和一个表示vtkLinearExtrusionFilter用于创建圆柱体的向量的方向箭头。 该示例采用一个可选的三元组,该三元组定义了过滤器的矢量。 向量的长度是圆柱体的高度。
118. Frustum
本示例从摄像机获取视锥并将其显示在屏幕上。
119. GeometricObjectsDemo
几种几何对象
120. Hexahedron
六面体是一个主要的三维单元,由六个四边形面,十二个边和八个顶点组成。 六面体由八个点的有序列表定义。 面和边不得与任何其他面和边相交,并且六面体必须是凸面的。
121. IsoparametricCellsDemo
此示例显示了VTK支持的等参单元。 这些像元是非线性的,包含一个或多个中边顶点。 等参元素通常用于[有限元分析](https://en.wikipedia.org/wiki/Finite_element_method)。 等参一词是从使用与定义元素内位移相同的形状函数(或插值函数)定义元素的几何形状中得出的。
本示例使用其参数坐标(pcoords)作为单元的顶点来说明每个单元的表示形式。 实际上,顶点将与有限元模型中的物理点相对应。 使用vtkTessellatorFilter可以更好地查看单元格的形状。
122. Line
该线是主要的一维单元。 它由两点定义。 沿着线的方向是从第一点到第二点。
123. LinearCellDemo
本示例显示工具包中的所有线性单元。
124. LongLine
用一条线连接几个点。
125. OrientedArrow
本示例说明了如何创建和显示经过两个点的箭头。
它演示了两种不同的方法来应用转换:
1.使用vtkTransformPolyDataFilter创建一个新的转换后的多数据。 如果在管道的后期需要转换的多数据,则此方法很有用。 vtkGlyph3DFilter。
2.使用vtkProp3D的SetUserMatrix将转换直接应用于角色。 没有新的数据产生。
通过#定义USER_MATRIX或忽略#define在两种方法之间切换。
126.OrientedCylinder
本示例说明了如何创建和显示经过两个点的圆柱体。
它演示了两种不同的方法来应用转换:
1.使用[vtkTransformPolyDataFilter](http://www.vtk.org/doc/nightly/html/classvtkTransformPolyDataFilter.html)创建新的转换后的多数据。 如果在管道的后期需要转换的多数据,则此方法很有用。 vtkGlyph3DFilter。
2.使用[vtkProp3D的SetUserMatrix](http://www.vtk.org/doc/nightly/html/classvtkProp3D.html#a950378fc70405a58bd998c00f84a39a3)将转换直接应用于演员。 没有新的数据产生。
通过#定义USER_MATRIX或忽略#define在两种方法之间切换。
!!! 信息“另请参见”
将此示例与[OrientedArrow](/ Cxx / GeometricObjects / OrientedArrow)进行比较。 变换是不同的,因为圆柱体高度方向沿y轴,而箭头高度沿x轴。
127. ParametricKuenDemo
该示例显示了与vtkParametricKuen vtkParametricFunctionSource的交互。
[Kuen曲面](http://mathworld.wolfram.com/KuenSurface.html)此高斯曲率恒定K = -1的曲面是较早发现的。 它因其美丽而非常受欢迎。
128. ParametricObjectsDemo
演示Andrew Maclean添加的Parametric类和Tim Meehan添加的其他类。参数样条线也包括在内。
提供了以下选项:
-指定一个表面( -s SURFACE_NAME )
-保存图像(-w )
-为背面上色(-b )
-添加法线(-n )
129. ParametricSuperEllipsoidDemo
参数超级椭球演示
130. ParametricSuperToroidDemo
参数超级环形演示
131. Plane
vtkPlaneSource对象创建一个m x n四边形的数组,这些数组在平面中排列为规则平铺。
先指定一个原点,然后再指定另外两个与原点一起定义该平面的两个轴的点来定义该平面。 这些轴不必是正交的-因此您可以创建平行四边形。 (轴不得平行。)平面的分辨率(即细分数)由XResolution和YResolution来控制。
默认情况下,平面以原点为中心并垂直于z轴,宽度和高度的长度为1,分辨率设置为1。
132. Planes
133. PlanesIntersection
134. PlaneSourceDemo
该示例显示了定义vtkPlaneSource的各种实例变量。
135. PlatonicSolids
在网格中显示所有五个柏拉图式固体。
柏拉图固体是规则的凸多面体。 它们由全等(形状和大小相同)正则(所有角度相等且所有边均相等)多边形面构成,并且在每个顶点处有相同数量的面。
136. Point
vtkPoints对象代表3D点。 vtkPoints的数据模型是可通过(点或单元)ID访问的vx-vy-vz三元组的数组。
137. Polygon
多边形是主要的二维单元。 多边形由平面中三个或更多点的有序列表定义。 多边形法线是使用右手法则通过其点的逆时针顺序隐式定义的。
多边形可能是非凸的,但可能没有内部循环,并且无法自相交。 多边形具有n条边,其中n是多边形中的点数。
138. PolygonIntersection
多边形相交
139. Polyhedron
多面体
140. PolyLine
多段线是由一条或多条连接线组成的复合一维单元。多段线由n+1点的有序列表定义,其中n是多段线中的线数。每对点(i,i+1)定义一条线。
141. PolyLine1
- Pyramid
金字塔
- Quad
四边形
- QuadraticHexahedron
二次六面体
- QuadraticHexahedronDemo
此示例显示了更改vtkQuadraticHexahedron的弦长误差的影响。
-
QuadraticTetra
二次四面体是主要的三维单元。 它由十点定义。 前四个点位于四面体的顶点。 接下来的六个分别位于六个边缘的中间
-
QuadraticTetraDemo
本示例显示了更改vtkQuadraticTetra的弦长误差的影响。
148 . RegularPolygonSource
本示例创建一个五边形。
149. ShrinkCube
使用vtkCubeSource生成多维数据集,然后应用缩小过滤器。
vtkShrinkFilter对象将组成任意数据集的单元格缩小到其质心。 计算单元的质心作为单元点的平均位置。 收缩导致电池彼此断开。
150. SourceObjectsDemo
通过程序生成多边形模型的源对象的示例。 这九张图像仅代表VTK的部分功能。 从左上方按阅读顺序排列:球体,圆锥体,圆柱体,立方体,平面,文本,随机点云,磁盘(有孔或无孔)和线源。
151. Sphere
vtkSphereSource对象创建一个以原点为中心的指定半径的球体(由多边形表示)。
可以指定纬度(phi)和经度(theta)方向上的分辨率(多边形离散化)。
通过指定最大phi和theta角度,也可以创建局部球体。 默认情况下,球体的曲面细分使用三角形; 但是,您可以将LatLongTessellation设置为使用四边形生成镶嵌。
- TessellatedBoxSource
使用具有6个面的vtkTessellatedBoxSource生成一个box(cube)。 盒子的面可以细分为多个三角形或四边形。
-
Tetrahedron
四面体。 四面体是主要的三维单元。 四面体由四个非平面点的列表定义。 四面体具有六个边缘和四个三角形面。
-
TextActor
文字
-
Triangle
三角形是主要的二维单元。 三角形由三个点的逆时针排序列表定义。 点的顺序使用右手规则指定表面法线的方向。
-
TriangleStrip
三角形带是由一个或多个三角形组成的复合二维单元。 定义三角形带的点不必位于平面上。 三角形带由n + 2点的有序列表定义,其中n是三角形的数量。 这些点的顺序使得三个点的每组都定义一个三角形。
157. Vertex
顶点是一个主要的零维像元。 它由单点定义。
Geovis
158. CompassWidget
本示例在窗口的右上角创建一个指南针。
159. EarthSource
160. GeoAssignCoordinates
地理分配坐标
Medical
161. MedicalDemo1
从头部CT数据集中提取的皮肤。SetValue(0, 500);
测试用例下载需要翻墙!
163. MedicalDemo2
皮肤和骨骼等值面。
164. MedicalDemo3
三个平面和半透明皮肤的合成图像
165. MedicalDemo4
数据集的体积渲染。
166. TissueLens
本示例使用两个vtkClipDataSet过滤器来实现“组织透镜”效果。 首先,使用vtkSphere隐式函数在用vtkMarchingCubes提取的等值面中裁剪球形孔。 然后,几何vtkSphereSource使用vtkProbeFilter对原始体积数据进行采样。 vtkClipDataSet使用所得的标量点数据使用等值面值修剪球体表面。
Modelling
167. Bottle
168. CappedSphere
演示如何创建上限球。
首先,在x-z平面中创建一条线,该线与x-z平面中+ x方向上从+ z到-z的弧相对应,弧的长度以度为单位。
然后通过垂直于x轴放置一条线来延长线。
然后将生成的点转换为直线,并传递到vtkRotationalExtrusionFilter以生成最终的3D曲面。
169. ContourTriangulator
轮廓三角剖分器
170. Delaunay3D
本示例从无序点创建四面体网格。 该示例使用vtkDelaunay3D过滤器。 生成的网格将是原始点的实心凸包。 该示例从XML PolyData文件(.vtp)中获取点,生成3D Delaunay四面体化(alpha = 0和非零alpha),并将结果显示在屏幕上。
对于alpha!= 0(右窗口),四边形为黄色,线条为蓝色,三角形为红色。
171. Delaunay3DDemo
本示例从无序点创建四面体网格。 该示例使用vtkDelaunay3D过滤器。 生成的网格将是原始点的实心凸包。 该示例从XML PolyData文件(.vtp)中获取点,生成3D Delaunay四面体化(alpha = 0和非零alpha),并将结果显示在屏幕上。
对于alpha!= 0(右窗口),四边形为黄色,线条为蓝色,三角形为红色。
可以交互更改Alpha,以查看其对生成的表面的影响。
172. DelaunayMesh
这是一组随机点的二维Delaunay三角剖分。 点和边显示为高亮显示的球体和管。
173. DiscreteMarchingCubes
根据标记的数据创建曲面。 卷数据并不总是包含连续数据的样本。 一个体积可能包含离散的整数值,通常是分段的结果。
vtkDiscreteMarchingCubes使用改良的行进立方体算法从这些分段的体积创建曲面。
该算法生成一个或多个模型,这些模型表示指定标签与相邻结构之间的边界。 必须指定一个或多个标签值才能生成模型。 边界位置始终定义为在相邻体素之间的中间位置。