VTKexamples

Meshes

  1. AddCell
    创建一个多数据对象, 将几何图形和拓扑添加到多数据

  2. BoundaryEdges
    该过滤器将提取网格的边界边缘。 原始网格显示为特征边显示为红色。

  3. CapClip
    演示如何在多面体数据上使用剪裁和封顶。本示例说明如何在裁剪的vtkPolyData上生成“上限”。 在使用vtkClipPolyData裁剪后,它使用了巧妙的“技巧”将折线转换为多边形。 如果提供了多数据文件,它将对其进行上限。 否则,它将覆盖修剪的球体。

  4. CellEdges
    检测一个cell有几个边缘

  5. ClipClosedSurface
    演示多边形数据裁剪的使用

  6. ClipDataSetWithPolyData
    该示例显示了如何使用vtkClipDataSet裁剪具有任意polydata的vtkRectilinearGrid.vtkImplicitPolyDataDistance用于将多数据转换为隐式函数。发送到vtkClipDataSet之前,将评估网格的每个点。本示例使用vtkConeSource生成要使用的多数据,但是可以使用任何多数据,包括stl文件。

  7. ClipFrustum
    该示例使用vtkClipPolyData裁剪带有vtkCamera的视锥的模型。 使用vtkFrustumSource显示平截头体。
    该示例进行如下操作:
    1.读取vtkPolyData。 该示例可以读取任何受支持的多数据读取器。
    2.生成模型视图。
    3.恢复当前vtkCamera的视图视锥。
    4.使用vtkPlanes :: SetFrustumPlanes创建一个隐式函数。
    5.将vtkPlanes传递给vtkFrustumSource。
    6.将vtkPlanes作为 ClipFunction 传递给vtkClipPolyData。
    7.告诉vtkClipPolyData为内部和外部生成vtkPolyData。
    8.呈现平截头体和修剪的模型。 内部模型是红色,外部模型是金。

  8. ColoredElevationMa
    与新的VTK通用数据阵列兼容

  9. Decimation
    本示例使用渐进式抽取对网格进行抽取。 SetTargetReduction函数通过指定要删除的三角形的百分比(0,1),指定应减少的三角形数量。例如,如果网格包含100个三角形,并且调用了SetTargetReduction(.90),则抽取后大约会有10个三角形-减少90%。
    vtkDecimatePro的实现与Proc Si​​ggraph`92中的[[三角形网格的抽取]](https://www.researchgate.net/publication/225075888_Decimation_of_triangle_meshes)中最初描述的算法相似,但有三个主要区别。首先,该算法不一定保留网格的拓扑。其次,保证给出用户指定的网格缩小系数(只要未设置某些约束,请参见警告)。第三,它设置为生成渐进式网格,这是可以轻松传输和增量更新的操作流
  10. DeformPointSet
    用多面体变形点集。 提供一个.vtp文件,看它是否变形。
  11. ElevationFilter
  12. ExtractEdges
    本示例说明如何从PolyData中提取边缘。 在这种情况下,我们将球体转换为线框球体。 我们演示了如何遍历结果边缘。

  13. FillHoles
    该过滤器在网格中查找孔并将其封闭。另外/ Cxx / Meshes / IdentifyHoles是填充孔,然后识别每个孔。

  14. FitToHeightMap
    本示例使用vtkFitToHeightMapFilter覆盖由vtkPlaneSource生成的vtkPolyData的高度图。 平面的原点point1和point2是根据DEM的边界框计算的。 每个参数的z坐标都设置为DEM的高度。 在此平面上,示例使用vtkProbeFilter来应用来自DEM的标量高程数据。
    vtkWarpScalar用于“提升” DEM网格。 将飞机悬停在变形的DEM网格上后,将使用相同的vtkLookupTable并排显示它们。
    显示的网格是原始的(左),点拟合(中)和像元拟合(右)。
  15. IdentifyHoles
    本示例填充网格中的孔,然后将填充的孔提取为单独的区域。
    该示例进行如下操作:
    1.读取多数据。
    2.用vtkFillHolesFilter填充孔。
    3.创建一个包含填充孔的新多数据。 为此,我们依赖于以下事实:填充孔过滤器首先存储原始单元 格,然后添加填充孔的新单元格。 使用vtkCellIterator,我们跳过原始单元格,然后继续迭代以获 得新单元格。
    4.在填充的多边形数据上使用vtkConnectivityFilter来识别各个孔。

  16. InterpolateFieldDataDemo
    提高分辨率,本示例使用vtkPointInterpolator探测具有较低分辨率数据集的高分辨率数据集。 然后,使用vtkInterpolateDataSetAttributes在原始低分辨率数据和所探测的低分辨率数据之间进行插值。

17.MatrixMathFilter

  1. OBBDicer
    vtkOBBDicer过滤器将一个输入网格分解为多个片段。生成的网格包含标量点数据,这些数据可用于使用类似于vtkThresholdFilter的筛选器提取各个片段。这个例子显示了vtkOBBDicer的输出,每一块都有不同的颜色。如图 为切成4块
  2. PointInterpolator
    本例使用带高斯核(或其他核)的vtkPointInterpolator对探测区域内外的场进行更平滑的插值和外推。

  3. QuadricClustering
    该算法的一般方法是在空间的均匀分块中对顶点进行聚类,在每一个箱子中累积每个三角形的二次曲面(推到三角形顶点),然后使用累积的二次曲面确定箱子中单个顶点的最佳位置。

  4. QuadricDecimation
    本例使用二次聚类,基于Garland和Heckbert的工作,他们首先在Siggraph'97上提出了二次误差度量[使用二次误差度量的曲面简化

  5. SimpleElevationFilter
    简单高程过滤器

  6. SolidClip
    此示例将剪裁网格,并将“背面”特性应用于看起来具有实体内部的网格。就是加底座!!

24.SplitPolyData
vtkOBBDicer过滤器将一个输入网格分解为多个片段。生成的网格包含标量点数据,这些数据可用于使用类似于vtkThreshold的筛选器提取各个片段。此示例将每个片段存储到.vtp文件中。

  1. Subdivision
    在本例中,从文件读取网格,然后使用线性细分进行细分。SetNumberOfSubdivisions(n)函数控制网格细分的次数。对于每个n,三角形的数量将增加大约4倍。例如,如果n=2,结果网格中的三角形数将是原始网格中三角形数的16倍。

26.SubdivisionDemo
和上一个类似

  1. TableBasedClipDataSetWithPolyData
    此示例演示如何使用vtkTableBasedClipDataSet用任意多边形数据剪裁vtkrectineargrid。vtkImplicitPolyDataDistance用于将polydata转换为隐式函数。在发送到vtkTableBasedClipDataSet之前,对网格的每个点进行求值。本例使用vtkConeSource生成要使用的polydata,但是可以使用任何polydata,包括stl文件。
    图像的左侧部分显示中心切片上的内部剪辑和距离场。右侧显示外部剪辑。当程序使用“e:键退出时,示例将报告内部剪辑和外部剪辑的单元格类型。
  2. TableBasedClipDataSetWithPolyData2
    此示例演示如何使用vtkTableBasedClipDataSet剪裁包含棋盘格模式的vtkrectineargrid。
  3. 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

  1. Pyramid
    金字塔
  2. Quad
    四边形
  3. QuadraticHexahedron
    二次六面体
  4. QuadraticHexahedronDemo
    此示例显示了更改vtkQuadraticHexahedron的弦长误差的影响。
  5. QuadraticTetra
    二次四面体是主要的三维单元。 它由十点定义。 前四个点位于四面体的顶点。 接下来的六个分别位于六个边缘的中间

  6. QuadraticTetraDemo
    本示例显示了更改vtkQuadraticTetra的弦长误差的影响。

148 . RegularPolygonSource
本示例创建一个五边形。

149. ShrinkCube
使用vtkCubeSource生成多维数据集,然后应用缩小过滤器。
vtkShrinkFilter对象将组成任意数据集的单元格缩小到其质心。 计算单元的质心作为单元点的平均位置。 收缩导致电池彼此断开。

150. SourceObjectsDemo
通过程序生成多边形模型的源对象的示例。 这九张图像仅代表VTK的部分功能。 从左上方按阅读顺序排列:球体,圆锥体,圆柱体,立方体,平面,文本,随机点云,磁盘(有孔或无孔)和线源。

151. Sphere
vtkSphereSource对象创建一个以原点为中心的指定半径的球体(由多边形表示)。
可以指定纬度(phi)和经度(theta)方向上的分辨率(多边形离散化)。
通过指定最大phi和theta角度,也可以创建局部球体。 默认情况下,球体的曲面细分使用三角形; 但是,您可以将LatLongTessellation设置为使用四边形生成镶嵌。

  1. TessellatedBoxSource
    使用具有6个面的vtkTessellatedBoxSource生成一个box(cube)。 盒子的面可以细分为多个三角形或四边形。
  2. Tetrahedron
    四面体。 四面体是主要的三维单元。 四面体由四个非平面点的列表定义。 四面体具有六个边缘和四个三角形面。

  3. TextActor
    文字

  4. Triangle
    三角形是主要的二维单元。 三角形由三个点的逆时针排序列表定义。 点的顺序使用右手规则指定表面法线的方向。

  5. 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使用改良的行进立方体算法从这些分段的体积创建曲面。
该算法生成一个或多个模型,这些模型表示指定标签与相邻结构之间的边界。 必须指定一个或多个标签值才能生成模型。 边界位置始终定义为在相邻体素之间的中间位置。

174. Finance
第一步是选择因变量和自变量。这种选择本质上是从多维数据到非结构化点数据集的映射。本示例选择MONTHLY_PAYMENT,INTEREST_RATE和LOAN_AMOUNT作为(x,y,z)点坐标,并选择TIME_LATE作为标量值。这映射了六个变量中的四个。现在,我们将忽略其他两个变量。
该示例使用vtkGaussianSplatter进行splatting操作(即,从非结构化点到体积数据集的转换)。然后进行等值面提取。我们将数据喷溅两次。我们第一次吐出全部人口。这是为了显示上下文,并在图中显示为灰色/线框。第二次,我们喷出数据并通过TIME_LATE的值对其进行缩放。结果,只有延迟付款才有助于第二个等值面。可视化的结果很有趣。首先,我们看到两个独立变量MONTHLY_PAYMENT和LOAN_AMOUNT之间有很强的相关性。 (当以交互方式查看数据时,这一点更加明显。)我们看到数据在这两个轴之间以45度角大致落在一个平面上。稍作反思,这是显而易见的:每月还款额很大程度上取决于贷款额(以及利率和还款期)。其次,我们看到总人口中有许多拖欠帐款。集群倾向于随着较高的利率而增长,而随着每月的偿还和贷款额较小而收缩。尽管与利率之间的关系是可以预期的,但每月较小的付款额却不是聚集的。因此,我们的可视化为数据提供了线索。进一步的探索可能会揭示原因,或者我们可能会执行其他数据分析和获取以了解现象。
关于多维可视化的重要说明。因为我们倾向于以奇怪的方式组合变量(例如,使用MONTHLY_PAYMENT,INTEREST_RATE和LOAN_AMOUNT作为(x,y,z)坐标),所以通常需要对数据进行规范化。为了规范化数据,我们只需将数据值调整为介于(0,1)之间即可。否则,我们的数据可能会严重偏斜,从而导致可视化效果不佳。

175. FinanceFieldData
财务领域数据

176. MarchingCubes
使用行进立方体从体积创建曲面。
在没有参数的情况下,示例使用vtkVoxelModeller生成体素化球体。
!!! 注意
     默认情况下,vtkVoxelModeller生成VTK_BIT标量图像。 Marching Cubes不支持此类型。 在此示例中,标量输出设置为浮点型。
要从DICOM系列生成表面,请提供一个包含该系列的文件夹,并为该表面指定一个等值。

177. MarchingSquares
没有找到输入数据!

178. SmoothDiscreteMarchingCubes
根据标记的数据创建曲面。 卷数据并不总是包含连续数据的样本。 一个体积可能包含离散的整数值,通常是分段的结果。 本示例使用vtkWindowedSincPolyDataFilter平滑由vtkDiscreteMarchingCubes生成的离散模型。

179. Spring
弹簧

VolumeRendering

180. FixedPointVolumeRayCastMapperCT
渲染,定点体积射线投射测绘仪CT

181. IntermixedUnstructuredGrid
混合非结构化网格

182. MinIntensityRendering
渲染

183. PseudoVolumeRendering
本示例使用100个不透明度为0.05的切面。 从头到尾渲染以模拟体积渲染。

184. RayCastIsosurface
此示例说明了体积渲染如何生成等值面图像。 通过将vtkOpenGLGPUVolumeRayCastMapper与等值面混合模式一起使用,可以使用适当的传递函数创建两个等值面。 效果类似于[MedicalDemo2](/ Cxx / Medical / MedicalDemo2)中显示的效果。 用户可以指定。mhd 文件和两个等值面值。 该示例将500和1150用于两个等值面值。 体积渲染“表面”比由MedicalDemo3中的vtkMarchingCubes创建的硬表面模糊得多。

185. SimpleRayCast
高潜力铁蛋白的体积绘制

PolyData

186. AlignFrames

187. AttachAttributes
本示例说明如何对齐两个vtkPolyData。通常,两个数据集是相关的。例如,将同一患者的CT头部等值面与MRI头部等值面对齐。或在不断变化的表面的时间序列中的两个步骤。这些情况通常位于同一坐标系中,并且初始对齐“接近”所需的结果。
另一种情况是,这两个数据集来自“相同”的对象族—例如,使用存在于不同坐标系中的两种类型的鲨鱼运行示例。
该算法进行如下:
1.读取示例命令行中存在的两个vtkPolyData。第一个文件包含要与第二个文件的称为目标的vtkPolyData对齐的源vtkPolyData。另一个命名约定是移动和固定的。
2.计算两个原始文件的契合度。我们使用最近添加的vtkHausdorffDistancePointSetFilter来计算度量。请参阅[Hausdorff距离](https://en.wikipedia.org/wiki/Hausdorff_distance)。
3.对齐两个数据集的边界框。在这里,我们使用vtkOBBTree定位器创建定向的边界框。请参阅[定向边界框](https://en.wikipedia.org/wiki/Minimum_bounding_box)。使用边界框角坐标创建源和目标vtkLandmarkTransform的坐标。 vtkTransformPolyData使用此转换来创建新的源vtkPolyData。由于边界框的方向可能不同,因此AlignBoundingBoxes函数会尝试十种不同的旋转。对于每次旋转,它都会计算目标的OBB角和转换源的OBB角之间的Hausdorff距离。最后,使用最小距离转换原始源。
4.使用RigidBody变换使用vtkIterativeClosestPointTransform改进对齐方式。再次计算距离度量。
5.使用具有最佳距离度量的变换,进行最终确定,并显示源vtkPolyData和目标vtkPolyData。

188. BooleanOperationPolyDataFilter
vtkBooleanOperationPolyDataFilter最适合“干净”数据,因此此示例首先运行vtkTriangleFilter,然后运行vtkCleanPolyData。
该示例可以通过三种方式运行:
1. * BooleanOperationPolyDataFilter *-计算两个球的交集
2. * BooleanOperationPolyDataFilter * 交点|差|联合-计算两个球体的交点(差或并集)
3. * BooleanOperationPolyDataFilter * ** input1.vtk交点|差|工会input2.vtk -计算两个vtkPolyData的交点(差或并集)

189. Casting
本示例创建一个具有3个点的多数据对象,并将距离值附加到每个点。 要从多数据中检索数组,我们必须对所需类型使用SafeDownCast。 这是必要的,因为为了使事情尽可能通用,多数据将返回一个抽象数组类。**

190. CellCenters
每个cell的中心点

191. CellCentersDemo
找出每个cell的中心点

192. CellEdgeNeighbors
确定哪些单元格与指定单元格共享一条边。

193. CellLocator
本示例创建一个球体,然后找到球体上最接近测试点的点。

194.CellLocatorVisualization
此示例的思想是使用滑块浏览统一空间树vtkCellLocator的级别。
!!! 注意
     不希望将CellsPerBucket设置为“太小”。 这是因为在某个时候,优化存储桶将导致该存储桶中的每个单元格也都位于该存储桶的子级中。 这只会浪费内存和计算量。 “太小”的值取决于网格,但是通常10到100之间的值应该很好用(默认值为25)。

195. CellPointNeighbors
确定哪些单元格与指定单元格共享至少一个点。

196. CellsInsideObject
此示例说明了如何提取存在于封闭曲面内的单元格。
它使用vtkSelectEnclosedPoints标记曲面内外的点。 vtkMultiThreshold用于将三个网格提取为三个vtkMultiBlockDataSet。完全外部的单元以深红色显示,完全内部的单元为黄色,边界单元为绿色。封闭表面的半透明副本有助于说明选择过程。
如果提供了两个多数据数据集,则该示例将第二个数据集用作封闭面。如果仅提供一个数据集,则通过将第一个数据集绕其Y轴旋转90度来生成闭合曲面。

197. CellTreeLocator
cell定位器

198. CenterOfMass
获取重心

199. CleanPolyData
创建多维数据集时,它具有24个顶点(每个面4个)。 这样做是因为
每张脸的正常情况非常不同。 通常,我们希望一个立方体只有8个顶点。 vtkCleanPolyData过滤器会删除重合点,从而生成我们期望的多维数据集。

200. ClosedSurface
是否是封闭面

201. ColorCells
本示例说明如何使用vtkLookupTable将特定颜色分配给vtkPolyData的各个单元。 vtkCellData具有一个vtkFloatArray,其中包含标量值。

202. ColorCellsWithRGB
本示例说明如何为vtkPolyData的各个单元分配特定的颜色。 本示例将vtkCellData作为rgb三元组存储在vtkUnsignedCharArray中。

203. ColorDisconnectedRegions
颜色分类

204. ColorDisconnectedRegionsDemo

205. ColoredPoints

206. ContoursToSurface
本示例创建了一个由21个圆组成的堆栈,并从中创建了一个闭合曲面。

207. ConvexHull


208. ConvexHullShrinkWrap
本示例创建一个点云,以及一个比完全包含该点云的点云大的球体。 然后,它将球“收缩包裹”到点上。 这产生了近似凸包。

209. CopyAllArrays
复制所有阵列

210. Curvatures
曲率

211. CurvaturesDemo
在本演示中使用了两个不同的表面,每个表面根据其高斯和平均曲率着色。
-第一个表面是超二次曲面,这表明需要使用额外的滤镜才能获得良好的光滑表面。
-第二个表面是参数化表面,在这种情况下,该表面已经过三角剖分,因此不需要额外的处理。
为了获得漂亮的彩色图像,已使用vtkColorTransferFunction为vtkLookupTable表生成一组颜色。我们使用了分散的色彩空间。
由于为查找表选择的范围是对称的,因此白色表示中间值,而蓝色表示小于中间值的值,红色表示大于中间值的颜色。
对于Random Hills高斯曲率曲面,此着色很好地显示了曲面的性质。蓝色区域为鞍点(负高斯曲率),红色区域为正高斯曲率。在平均曲率的情况下,蓝色表示垂直于主轴之一的负曲率。
此示例还演示了std :: vector的用法以及矢量元素的链接在一起以形成管道。

212. DataBounds
本示例获取数据集的范围。 请注意,必须应用Update()来创建过滤器的输出。

213. DataSetSurfaceFilter
本示例演示如何将非结构化网格转换为多数据。 当前,生成的多数据未完成任何操作。 如果有人拥有良好的数据集可以证明这种转化,请告诉我们。

214. DecimatePolyline
本示例说明如何抽取折线。

215. DeleteCells
本示例演示如何从vtkPolyData中删除单元格。 这是一个三步过程:首先,建立从点到单元的向上链接; 第二,标记要删除的细胞; 第三,删除标记的单元格。 第一步是创建适合于有效删除操作的数据结构所必需的。 创建此数据结构的计算量很大,因此只能在需要它的操作之前执行,例如 需要更改拓扑的组件。

216. DeletePoint
删除点

217. DetermineArrayDataTypes
本示例说明如何确定vtp文件中命名数组中存储的数据类型。

218. DijkstraGraphGeodesicPath


219. DistancePolyDataFilter
距离多边形数据过滤器

220. DownsamplePointCloud
本示例通过指定两个点之间的最小距离来对点云进行下采样。 过滤器将删除点,以便符合此条件。

221. EmbedPointsIntoVolume
将点嵌入体积

222. ExternalContour
计算多边形的外部轮廓。
首先,它创建包含多数据的场景的黑白图像,然后从图像中提取黑色形状的轮廓。
223. ExtractCellsUsingPoints
使用点提取单元格

224. ExtractOutsideSurface
本示例提取多表面vtkPolyData模型的外表面。该示例假定外表面是封闭的,并且只有一个外表面。它还假设模型的中心位于外表面内。
该示例将光线从模型的边界投射到模型的中心。它使用vtkCellLocator将射线与模型相交。相交的单元用作vtkPolyDataConnectivityFilter的种子,该种子在提取模式设置为CellSeededRegions的情况下运行。
如果不带参数运行,则该示例在大(面积)球体内生成一个小(面积)球。内球比外球具有更多的细胞,但不应提取。
金色模型是原始vtkPolyData,蓝色模型是外表面。
您可以通过在命令行上指定XML PolyData文件(.vtp)来尝试自己的界面。

225. ExtractPolyLinesFromPolyData
本示例使用vtkCutter创建轮廓线。 它使用vtkStripper处理这些线以创建连续的多段线。 使用“ e”键退出示例后,将打印这些行。

226. ExtractSelectedIds
本示例创建50个随机点并提取其中的10个(ID为10-19的点)。

227. ExtractSelection
本示例创建50个随机点并提取其中的10个(ID为10-19的点)。

228. ExtractSelectionCells
提取选择单元格

229. ExtractSelectionOriginalId
提取选择原始ID

230. FieldData
可以在vtkPolyData对象中存储三种类型的数据-PointData,CellData和FieldData。 对于PointData,必须有一个与每个点关联的数据(例如,温度数据数组,每个点都有温度)。 对于CellData,必须有一个与每个单元格关联的数据(例如,每个三角形的面积)。 对于与点或单元格都不对齐的数据,应使用FieldData。 这通常是描述整个数据集的数据。 例如,数据集的名称或点的质心等。
此演示将常规数据添加到多数据(不在每个点或单元)。 在此示例中,存储了数据的质心。

231. FitSplineToCutterOutput
本示例将剪切vtkPolydata并将vtkKochanekSpline拟合到所得折线。 切割线通过vtkStripper传递,以使其成为连接的折线。 然后,将这些行通过vtkTubeFilter进行传递以改善可视化效果。
这些示例采用一个可选参数,该参数指定了vtk多数据文件(.vtp)。 如果不带参数运行,它将处理一个球体。

232. GeometryFilter
本示例演示如何将非结构化网格转换为多数据。 当前,生成的多数据未完成任何操作。 如果有人拥有良好的数据集可以证明这种转化,请告诉我们。

233. GetMiscCellData
获取其他单元数据

234. GetMiscPointData
此示例演示如何获取存储在多数据中每个点的数据。

235. GradientFilter
计算在数据集的点上定义的标量字段的梯度。

236. GreedyTerrainDecimation
地形分割

237. HighlightBadCells

238. ImplicitDataSetClipping
本示例演示了如何将一个对象与另一个对象一起裁剪。

239. ImplicitModeller
隐式模型

240. ImplicitPolyDataDistance
隐式多边形数据距离

241. ImplicitSelectionLoop

242. InterpolateMeshOnGrid
本示例对点网格上的网格进行重新采样。

243. InterpolateTerrain
本示例使用两种方法对“地形图”进行采样。
-从地形的x,y点创建图像,然后使用vtkProbeFilter内插高度。
-使用vtkCellLocator直接插值地形多数据。
请注意,当该点不是原始地形点之一时,结果会有所不同。 这是因为图像具有四边形元素,而多数据具有三角形。 随着网格分辨率的提高,两个结果收敛。

244. IntersectionPolyDataFilter
交集多边形数据过滤器

245. IterateOverLines
遍历行

246. KochanekSpline
vtkKochanekSpline提供了三个参数来控制样条线的形状:
1.张力-更改切线向量的长度
2.偏差-主要改变切向量的方向
3.连续性-改变切线之间变化的清晰度

247. KochanekSplineDemo
该示例提供了vtkSliderWidget来更改vtkKochanekSpline的张力,连续性和偏差。
1.张力-更改切线向量的长度
2.偏差-主要改变切向量的方向
3.连续性-改变切线之间变化的清晰度

248. LinearExtrusion
本示例创建一些文本,将其拉伸以使其成为3D。

249. LoopBooleanPolyDataFilter
vtkLoopBooleanPolyDataFilter最适合“干净”数据,因此本示例首先运行vtkTriangleFilter,然后运行vtkCleanPolyData。
该示例可以通过三种方式运行:
1. * LoopBooleanPolyDataFilter *-计算两个球的交集
2. * LoopBooleanPolyDataFilter * 交点|差|联合-计算两个球体的交点(差或并集)
3. * LoopBooleanPolyDataFilter * ** input1.vtk相交|差|联合input2.vtk -计算两个vtkPolyData的相交(差或并)**

250. MaskPoints
遮住的点

251. MergePoints
插入一个新的点

252. MergeSelections

253. MeshQuality
本示例使用许多可选方法之一来确定网格的质量。 在这种情况下,我们选择使用三角形的面积。 我们展示了如何在过程完成后检索在每个三角形上计算出的质量指标。

254. MiscCellData
此演示将双精度附加到多数据中的单元格(三角形)上。

255. MiscPointData
此演示将矢量(在本例中为长度为1的浮点矢量)附加到多数据中的每个点。

256. MultiBlockMergeFilter
多块合并过滤器

257. NullPoint

258. OrientedBoundingCylinder
本示例创建一个定向圆柱体,该圆柱体包围vtkPolyData。 圆柱体的轴与vtkPolyData的最长轴对齐。
该示例进行如下操作:
1. vtkOBBTree创建一个定向的边界框。 框的z尺寸与最长轴对齐。
2. vtkQuad查找边界框每个面的中心。
3. vtkLineSource从长轴面的中心创建一条线。
4. vtkTubeFilter从半径等于边界框内圆的直线创建一个“圆柱”。
5. vtkExtractEnclosedPoints确定初始猜测之外是否还有点。
6.如果外面有点,该示例将从初始半径到外圆进行线性搜索。

259. Outline
本示例说明如何绘制数据集的轮廓。

260. ParametricSpline


261. PointCellIds
本示例演示如何获取点和单元中的Ids数量。

262. PointInsideObject
本示例在面为1的原点处创建一个多维数据集。然后,检查点是否在多维数据集中。 里面有一个点,边界上有一个点,外面有一个点。 第一个答案应该是,其他两个答案是。
然后渲染多维数据集和点以查看结果。

263. PointInsideObject2
本示例从网格对象创建一个体积(凸壳)。 然后,它使用FindCell(确定点是否在单元格内)确定点是否在Delaunay3D创建的任何3D单元内。 这可能会导致误报-也就是说,点在网格外部但在凸包内部。

264. PointLocator
为一组点创建一个点定位器。 “ n”(下一个)和“ p”(上一个)键更改单元格的分辨率。

265. PointLocatorVisualization
此示例的思想是使用滑块浏览统一空间树(vtkPointLocator)的级别。
     不希望将PointsPerBucket设置为“太小”。 这是因为在某个时候,优化存储桶将导致该存储桶中的每个单元格也都位于该存储桶的子级中。 这只会浪费内存和计算量。 “太小”的值取决于网格,但是通常10到100之间的值应该很好用(默认值为25)。

266. PointSource


267. PointsProjectedHull
本示例演示如何找到投影到任何坐标平面上的点集的2D凸包(在这种情况下,我们选择YZ平面(沿x轴的投影))。

268. PolyDataCellNormals
本示例说明如何向顶点添加法线。 这与向任何类型的单元格添加法线相同。

269. PolyDataConnectivityFilter_LargestRegion
本示例使用vtkPolyDataConnectivityFilter保留网格的最大连接区域。 请注意,这是基于点的数量,而不是区域的实际面积。
原始vtkPolyData在顶部为红色。 提取的区域在底部为黄色。

270. PolyDataConnectivityFilter_SpecifiedRegion
本示例创建两个球体并将它们组合在一起成为一个多数据。 vtkPolyDataConnectivityFilter用于查找两个球体,因为它们是分开的区域(断开连接)。 如果选择区域0,则提取小球体。 如果选择区域1,则提取大球体。
原始vtkPolyData在顶部为红色。 提取的区域在底部为黄色。

271. PolyDataContourToImageData
本示例生成一个球体,将其切成一个平面,并因此生成一个圆形轮廓(vtkPolyData)。 随后从中提取二进制图像表示形式(vtkImageData)。 内部使用vtkPolyDataToImageStencil和vtkLinearExtrusionFilter。 循环多边形数据(circle.vtp)和结果图像(labelImage.mhd)均保存到磁盘。
     类似于示例[PolyDataToImageData](PolyDataToImageData),我不确定是否需要调整图像原点,因为球面图像叠加层在paraview可视化中显示出一些偏移

272. PolyDataExtractNormals
此演示在多数据中查找多种类型的法线,如果不存在则生成它们。

273. PolyDataGetPoint
本示例演示如何获取vtkPolyData对象中的点的坐标。

274. PolyDataIsoLines
多边形数据等值线

275. PolyDataPointNormals
该演示向多数据中的每个点添加了法线。

276. PolyDataPointSampler
原始点为黄色,添加点为红色。

277. PolyDataToImageData
本示例生成一个球体(前提:vtkPolyData类型的闭合曲面),并将其转换为体积表示(vtkImageData),其中前景体素为255(内部),背景体素为0(外部)。 内部使用vtkPolyDataToImageStencil。 结果图像以元图像文件格式(SphereVolume.mhd)保存到磁盘。

278. PolyDataToUnstructuredGrid
没有一个过滤器的唯一目的是将vtkPolyData转换为vtkUnstructuredGrid。 但是,追加过滤器可以接受任何类型的输入,并生成vtkUnstructuredGrid,因此我们可以将其用于此目的。

279. PolygonalSurfaceContourLineInterpolator
多边形表面轮廓线插值器, 线自动生成

280. PolygonalSurfacePointPlacer
本示例演示了如何在曲面上绘制曲线。

281. ProcrustesAlignmentFilter
本示例使用[Procrustes算法](https://en.wikipedia.org/wiki/Orthogonal_Procrustes_problem)对齐三个对象(变形的球体)。 原始形状显示在左侧。 中间显示了使用刚性变换的对齐方式,右侧显示了使用相似性变换的对齐方式。

282. QuantizePolyDataPoints
本示例演示如何将点“捕捉”到离散网格上。 本示例将每个点的坐标四舍五入为最接近的.1

283. Reflection
本示例使用vtkReflectionFilter,后者输出vtkDataObject。 有关返回vtkPolyData的示例,

284. RemoveOutsideSurface
本示例删除多表面vtkPolyData模型的外表面。这些示例假定外表面是封闭的,并且只有一个外表面。它还假设模型的中心位于外表面内。
该示例进行如下操作:
1.使用vtkConnectivityFilter用区域ID标记模型中的所有区域。
2.将光线从模型的边界投射到模型的中心。使用vtkCellLocator将射线与模型相交。相交的单元将在模型的外表面上。
3.相交单元的vtkCellData将具有该单元的区域ID。
4.使用vtkCellIterator访问模型的每个单元。区域ID不等于相交的单元格区域io的单元格保留在新的vtkPolyData上
生成的vtkPolyData将包含除外表面之外的所有表面。
如果不带参数运行,该示例将在一个大(面积)球体内生成几个小(面积)球。内球比外球具有更多的细胞,但不会被提取。
金色模型是原始的多数据,蓝色模型是去除了外表面的原始多数据。
您可以通过在命令行上指定XML PolyData文件(.vtp)来尝试自己的界面。

285. RemoveVertices
删除顶点

  1. ResampleAppendedPolyData
    该示例使用从vtkPlatonicSolidSource中选择的随机放置和缩放的对象填充水平地形。
    该示例进行如下操作:
    1.使用vtkPlaneSource创建一个地形。
    2.使用vtkPlatonicSolidSource生成对象,随机选择实体的类型。
    3.使用[std :: random](http://www.cplusplus.com/reference/random/)随机缩放和放置对象。
    4.使用vtkAppendPolyData将对象附加到terrain和其他对象。
    5.创建更高或更低分辨率的地形。
    6.对于新地形中的每个点,在该点上绘制一条长线。
    7.使用vtkCellLocator :: IntersectWithLine查找线的交点,并将其z值用作新的地形高度。
    8.在并排视口中显示原始和重新采样的地形。
  2. ResamplePolyLine
    本示例使用vtkCardinalSpline对多段线进行重新采样。 重新采样的线将具有原始折线中包含的点数的10倍。 如果未提供XML文件,则会生成一条随机折线。‘
  3. RibbonFilter
    本示例演示如何沿直线绘制平面(带状)。

  4. RotationAroundLine
    本示例演示如何围绕轴旋转对象。 对于该演示,我们将圆锥体绕y轴旋转10度。

  5. RuledSurfaceFilter
    直纹表面过滤器

  6. SelectPolyData
    选择多边形数据

  7. SelectVisiblePoints
    本示例演示如何确定可见的对象。

    293. ShrinkPolyData
    收缩多边形数据

    294. Silhouette
    红丝边为轮廓
    295. SmoothPolyDataFilter
    平滑多边形数据过滤器

    296. ThinPlateSplineTransform
    薄板样条线变换

    297. TransformFilter
    本示例拉伸箭头。

    298. TransformOrderDemo
    本示例创建一个图像。 在左视口中,它会平移图像,然后平移和旋转图像。 在右视口中,它将旋转图像,然后旋转并平移图像。 可以看到结果显然不一样!

299. TransformPipeline
此示例演示如何连接转换以保持一个角色相对于另一个角色的坐标。 我之所以使用机械臂,是因为这是James D. Foley最初在《计算机图形学:C的原理和实践》一书中使用的一个很好的示例。阅读本书的人可能想知道如何在VTK中进行制作。

300. TriangleColoredPoints
此示例说明了如何通过向三角形的每个顶点添加颜色,使三角形的颜色在各个顶点的颜色之间平滑变化。

301. TriangleSolidColor
纯色三角形

302. TubeFilter
本示例在一条线周围创建一个管。 这很有用,因为在缩放摄像机时,线的厚度保持不变,而套管的厚度却变化。

303. VertexConnectivity
输入必须仅是边(即必须运行vtkExtractEdges)。

304. WarpScalar
经标量

305. WarpSurface
该图像是使用[此数据](https://raw.githubusercontent.com/lorensen/VTKWikiExamples/master/Testing/Data/cowHead.vtp)生成的,缩放比例为1。

306. WarpVector


307. WeightedTransformFilter
权重变换滤波器