COIN3D拖拽器使用

2021-08-15 02:43:04 字數 1175 閱讀 8149

#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 ...