VTK学习(三)
1 vtkElevationFilter
vtkObject->vtkAlgorithm->vtkDataSetAlgorithm->vtkElevationFilter
從數據集生成標量值(在用戶指定范圍內),通過計算每個點到一條線上的投影來完成,該線可以任意定方向,計算完成后,每個點都含有一個標量值
例如,可以基于高度(設置線為z軸)進行計算,這樣,z坐標相等的點具有相同的標量值(vtk將結果渲染為不同的顏色)
virtual void vtkElevationFilter::SetLowPoint(double,double,double)
virtual void vtkElevationFilter::SetHighPoint(double,double,double)
這兩個函數用于設置線的兩個端點,LowPoint顯示為冷色,HighPoint顯示為暖色
2 vtkDeformPointSet
vtkObject->vtkAlgorithm->vtkPointSetAlgorithm->vtkDeformSet
利用控制多面體網格來變形輸入的vtkPointSet,控制多面體網格必須是封閉的表面
每當控制網格變形(網格中點的位置發生改變),就會使相對應的vtkPointSet也產生相同的變形
void vtkDeformPointSet::SetControlMeshData(vtkPolyData* controlMesh)
設置控制網格
3 vtkQuadricDecimation&vtkQuadricClustering
vtkObject->vtkAlgorithm->vtkPolyDataAlgorithm->vtkQuadricDecimation
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ->vtkQuadricDecimation
用于減少三角形網格中三角形的數量,只接受三角形網格,如果是多邊形網格,需要先進行三角形劃分(vtkTriangeFilter)
最好用的是vtkDecimatePro
vtkObject->vtkAlgorithm->vtkPolyDataAlgorithm->vtkDecimatePro
SetTargetReduction 用于設置TargetReduction的大小(0~1)
4 vtkLinearSubdivisionFilter & vtkLoopsubdivisionFilter & vtkButterflySubdivisionFilter
vtkObject->vtkAlgorithm->vtkPolyDataAlgorithm->vtkSubdivisionFilter->vtkInterpolatingSubdivisionFilter->vtkLinearSubdivisionFilter
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?->vtkButterflySubdivisionFilter
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?->vtkApproximatingSubdivisionFilter->vtkLoopSubdivisionFilter
實現網格模型細化操作,vtkSubdivisionFilter內部提供了
virtual void vtkSubdivisionFilter::SetNumberOfSubdivisions(int)?
來控制細化的次數,每次細化之后三角形的個數變為原來的四倍,所以經過n次細化之后,三角形的個數變為4^n
總結
- 上一篇: 自动驾驶之轨迹规划6——Apollo E
- 下一篇: 水文监测系统 水文遥测终端机 遥测终端机