1 開發環境
計算機系統:win8.1(64位)
qt版本:5.2.1
qt creator版本:3.0.1
vtk版本:6.2.0
2 問題描述
vtk中可以是實現畫線條的類有vtkline和vtkpolyline。畫單條線比較容易實現,但是要畫多根線,使其構成樹形,就比較麻煩。根據現有的資料,達到這個目的的方法有a)多個actor,為每根線條建立乙個actor;b)單個actor。
由於單個actor比較簡潔,避免了為不同的線建立不同的的actor,因此本文重點介紹此方法。
3 具體**
void rsameasurement3d::skeletonshow(qlist < qlist< qpoint3d > > groups,
vtkactor *actor, double color[3])
}//polyline
vtksmartpointer< vtkpolyline >apolyline =
vtksmartpointer< vtkpolyline >::new();
apolyline->getpointids()->setnumberofids( points->getnumberofpoints() );
for (int i = 0; i < points->getnumberofpoints(); i++)
// vtkgrid
vtksmartpointer< vtkunstructuredgrid > apolylinegrid =
vtksmartpointer< vtkunstructuredgrid >::new();
apolylinegrid->allocate(1, 1);
// cells, very important
for( int i = 0; i < ids.length(); i++)
apolylinegrid->setpoints( points );
// actor
vtksmartpointer< vtkactor > apolylineactor =
vtksmartpointer< vtkactor >::new();
apolylineactor->getproperty()->setcolor(1, 0, 0);
m_pvtkrenderer3d->addactor( apolylineactor );
ui->qvtkwidget3d->repaint();
}
說明:
上面**是我最近專案中的乙個函式,主要用於將骨架點雲顯示成骨架線。
引數:groups——點雲的組,每組中包含了若干個點
actor——暫時沒有使用
color——暫時沒有使用
資料型別:
qpoint3d——我自己定義的乙個型別,主要用於儲存3d點資料(qpoint只至此2d的)
顯示效果如下圖:
參考資料
[1]vtk中畫線的**
[2]3d plot of multiple lines between 2 known points
[3]draw a multiple lines set with vtk
[3]vtk/examples/cxx/geometricobjects/coloredlines
[4]how to draw multiple lines simultaneously with vtk?
04 canvas多根線條
1 doctype html 2 html lang en 3 head 4 meta charset utf 8 5 title 04 canvas多根線條 title 6 style 7 11canvas 14style 15head 16 body 17 canvas canvas 18 sc...
VTK 面繪製 顯示人頭
rawresolution.cpp 定義控制台應用程式的入口點。include stdafx.h include using namespace std include vtkunsignedchararray.h include vtkpiecewisefunction.h include vtk...
VTK顯示VTI格式的資料
vtk module init vtkinteractionstyle vtk module init vtkrenderingfreetype int main int argc,char ar std string inputfilename ar 1 讀取資料 vtksmartpointerr...