#include //標頭檔案
sotransformerdragger *dragger1;//申明
///dragger1=new sotransformerdragger;//新建
dragger1->scalefactor.setvalue(0.2,0.2,0.2);//設定縮放因子,由於場景是m為單位,因此拖拽器一般情況下比較大,甚至大於場景中的主要實體,可以通過縮放去修正
dragger1->translation.setvalue(50.0/1000,50.0/1000,950.0/1000);//設定拖拽器起始位置,相對於場景世界座標系偏移
可以自定義拖拽器每個部分的形狀替換原來的拖拽面,替換函式為setpart()
//soseparator *draiv = new soseparator;
//soinput input0;
"bigaxis.iv");
//soseparator *dra = sodb::readall(&input0);
//draiv->addchild(dra);
//dragger1->setpart("translator1",draiv);
/root->addchild(dragger1);//新增到根節點,也可以新增到其餘想拖動的節點上
mtr=dragger1->getlocaltoworldmatrix();//此函式可以獲取拖拽器當前位姿相對於世界座標系的位姿矩陣,矩陣為4*4大小的。矩陣型別為sbmatrix;
注意:
coin3d中提供了很多態別的拖拽器,基本上使用方法類似。
可以在coin3d資料夾下去修改拖拽器的iv檔案,修改顏色,大小以及相應區域等,但是這裡需要注意,一定要設定系統環境變數:
右擊我的電腦->高階系統設定->環境變數->系統變數;變數名為:so_dragger_dir
變數值為:c:\coin3d\data\draggerdefaults
(根據自己存放的路徑)
其餘:coin3d中拖拽器也有shift和ctrl鍵的訊息響應,摁住shift,可以鎖定乙個方向拖動,摁住ctrl鎖定當前面的法向拖動。
目前,robotmaster的拖拽器做的其實挺不錯的,類似ug三維軟體都有拖拽器的功能,可以效仿。不過我個人還是比較喜歡robotmaster的,有扇形**區域,拖拽器比較美觀,用起來也很舒服。
Coin3D三維視覺化教程1
上次介紹了coin3d的安裝和在vs 2019 qt下的配置,後面講逐步學習這個庫的使用,採用的主要材料的the inventor mentor中文版。書中的 時在mac平台的開發,這裡採用的用的是windows,soxt是coin3d在mac平台上的介面繫結庫,soqt是與qt的繫結庫,sowin...
C 呼叫C 用類封裝的coin3d 3維顯示程式
1 首先用vs2008新建乙個win32 win32 project dll工程,需要設定好coin3d 編譯的環境,然後新增乙個原始檔,如下 ifdef testdll exports define testdll api declspec dllexport else define testdl...
Unity 點選滑鼠右鍵實現3D物體拖拽移動
要想通過滑鼠拖拽物體需要拿到物體的世界座標以及螢幕座標.其次獲取滑鼠在螢幕中移動的偏移量 private vector3 aotiscreen 用來獲取物體在螢幕的座標 private vector3 mousestartscreen 用來獲取滑鼠按下時在螢幕的位置 private vector3 ...