VTK學習(十五)封閉性檢測

2021-08-10 19:19:24 字數 3896 閱讀 7830

如果乙個邊只被乙個多邊形包含,那麼這條邊就是邊界邊。是否存在邊界邊是檢測乙個網格模型是否封閉的重要特徵。

vtkfeatureedges是乙個非常重要的類,該類能夠提取多邊形網格模型中四種型別的邊

1.邊界邊,就是只被乙個多邊形包含的邊

2.非流行邊,被三個或者三個以上的多邊形包含的邊即為四種型別的邊

3.特徵邊,當包含同一條邊的兩個三角形的法向量的夾角大於該閾值時,即為特徵邊。

4.流行邊,只為兩個多邊形包含的邊

vtksmartpointerfeatureedges =

vtksmartpointer::new();

featureedges->setinputdata(input);

featureedges->boundaryedgeson();

featureedges->featureedgesoff();

featureedges->manifoldedgesoff();

featureedges->nonmanifoldedgesoff();

featureedges->update();

可以通過邊界邊的數目來確定網格是否封閉

int numberofopenedges = featureedges->getoutput()->getnumberofcells();
可以用vtkfillholesfiller來進行漏洞填補。首先檢測出網格中所有的邊界邊,然後找出這些邊界邊的每乙個閉合迴路,最後將閉合迴路進行三角化,實現填補目的。

vtksmartpointernormals =

vtksmartpointer::new();

normals->setinputconnection(fillholesfilter->getoutputport());

normals->consistencyon();

normals->splittingoff();

normals->update();

VTK學習(八)vtk管線

vtk module init vtkinteractionstyle int main int argc,char argv vtk兩個重要概念,一,渲染引擎,負責資料的視覺化表達。二,視覺化管線,指用於獲取資料,處理資料以及把資料寫入檔案或者把資料傳入渲染引擎進行顯示。資料物件,處理物件,資料流...

VTK 學習筆記

vtk 是乙個物件導向的系統,高效使用 vtk的關鍵,是要逐漸較好地理解底層的物件模型,這樣做是為了去掉數百個物件的神秘外衣。理解力達到一定程度,你很容易建立應用程式。也許你想知道許多物件的功能,只有反覆練習 例子,才能對物件有所理解。在本使用者指南中,我們努力提供有用的物件組合來滿足你的應用。接下...

VTK學習筆記 使用VTK互動功能

即使不會使用vtk互動功能,不要緊。先從概念入手。一般乙個舞台上,有這麼幾個元素 演員 燈光 照相機 觀眾 和觀眾互動的行為 再來看看vtk圖形模型主要物件,你會發現很類似這個實際生活的舞台。1.vtk圖形模型主要物件 1 演員 actor 代表場景中繪製的實體。通過引數的調節可以設定角色的位置,方...