以下例子是:
面繪製乙個mhd檔案,在設定 vesselextractor->setvalue( 0 ,20)的第二個值時,沿用滑動條來觀察結果;
如果你用在其他場景下,相應改變vtkslidercallback中的引數和函式語句即可;
參考的部落格原文:
#include"vtkconesource.h"
#include"vtkrenderwindow.h"
#include"vtkcamera.h"
#include"vtkactor.h"
#include"vtkrenderer.h"
#include"vtkrenderwindowinteractor.h"
#include"vtkinteractorstyletrackballcamera.h"
#include"vtkcommand.h"
#include"vtksliderwidget.h"
#include"vtksliderrepresentation3d.h"
#include"vtkproperty.h"
#include"vtklight.h"
class vtkslidercallback :public vtkcommand
virtual void execute(vtkobject*caller, unsigned long, void*)
vtkslidercallback() :vesselextractor(0){}
vtkmarchingcubes *vesselextractor;
};int main()
vtkmarchingcubes *vesselextractor = vtkmarchingcubes::new();
vesselextractor->setinputconnection(reader->getoutputport());
vesselextractor->setnumberofcontours(1);
vesselextractor->setvalue( 0 ,20); //面繪製設定的值,可改
vtkstripper *vesselstripper = vtkstripper::new();
vesselstripper->setinputconnection(vesselextractor->getoutputport());
vtkactor *vessel = vtkactor::new();
vessel->getproperty()->setdiffusecolor(-4, -4, 0);
vessel->getproperty()->setspecular(.3);
vessel->getproperty()->setspecularpower(20);
vessel->getproperty()->setcolor(1,0.75,0);
vessel->getproperty()->setopacity(1);
vtkrenderer*ren1 = vtkrenderer::new();
ren1->addactor(vessel);
ren1->setbackground( 120, 120, 120 );
vtkrenderwindow*renwin = vtkrenderwindow::new();
renwin->addrenderer(ren1);
renwin->setsize(1000, 1000);
vtkrenderwindowinteractor*iren = vtkrenderwindowinteractor::new();//設定互動
iren->setrenderwindow(renwin);
vtkinteractorstyletrackballcamera *style = vtkinteractorstyletrackballcamera::new();
iren->setinteractorstyle(style);
//例項化vtksliderrepresentation3d,並設定屬性。該物件用做滑塊在場景中的3d表示
vtksliderrepresentation3d* sliderrep = vtksliderrepresentation3d::new();
sliderrep->setvalue(30);
//滑動條兩端的值,預設0-100
sliderrep->setminimumvalue(0);
sliderrep->setmaximumvalue(100);
sliderrep->settitletext("vessel value");
//text position
sliderrep->getpoint1coordinate()->setcoordinatesystemtoworld();
sliderrep->getpoint1coordinate()->setvalue(10, 10, 0);
sliderrep->getpoint2coordinate()->setcoordinatesystemtoworld();
sliderrep->getpoint2coordinate()->setvalue(200, 10, 0);//titletext的座標
sliderrep->setsliderlength(0.05);
sliderrep->setsliderwidth(0.05);
sliderrep->setendcaplength(0.05);
vtksliderwidget*sliderwidget = vtksliderwidget::new();
sliderwidget->setinteractor(iren);
sliderwidget->setrepresentation(sliderrep);
sliderwidget->setanimationmodetoanimate();
sliderwidget->enabledon();//用於使用滑塊
vtkslidercallback* callback = vtkslidercallback::new();
callback->vesselextractor = vesselextractor;
sliderwidget->addobserver(vtkcommand::interactionevent, callback);
//vtkboxwidget*boxwidget = vtkboxwidget::new();//建立vtkboxwidget例項
//boxwidget->setinteractor(iren); // 設定互動器
//boxwidget->setplacefactor(1.25); //設定縮放因子
//boxwidget->setprop3d(coneactor);//關聯乙個道具
//boxwidget->placewidget();//對位置初始化
vtkmycallback*callback = vtkmycallback::new();
//boxwidget->addobserver(vtkcommand::interactionevent, callback);
//boxwidget->on();
iren->initialize();
iren->start();
return 0;
}
滑動條(滾動)
在初始化對話方塊裡,首先對滑動條進行初始化,並繫結控制項變數 scrollinfo si 滾動條結構 si.cbsize sizeof si si.fmask sif range sif page 範圍,從左邊到右邊 si.nmin 0 最小值 si.nmax 100 最大值 si.npage 10...
橫向滾動條(滑動條)
asp.net的gridview本身不帶滾動條,可通過panel實現。但是windows自帶的橫向滾動條只支援顯示在下方,為了使用方便,需要在上下方都顯示橫向滾動條。查詢了很多方法,有些不能實現 被滾動內容的寬度未知,但使用這種方法必須已知 其它的不能完全相容這些瀏覽器 ie6,firefox,ch...
egret Scroller 隱藏滑動條
在 egret engine 3.0.3 優化了 scroller 的體驗。當我們使用 scroller 實現一些滾動區域的效果時,會發現右側有乙個滾動條 scrollbar 預設是自動隱藏的。即當我們不滾動區域時時不會顯示該滾動條的。現在可以使用 scrollbar vscrollbar 和 hs...