VTK 滑鼠畫線(點移動線可同步更新)

2021-09-12 10:52:51 字數 912 閱讀 8298

滑鼠互動事件:點兩個點形成一條線

通過滑鼠點兩個點,同時標記這兩個點,形成一條線。(只有一條線,並不是每次點兩個點都會新出現一條線)

這個版本是個初級版本,(後面我也實現了任意拖動乙個點,直線會相應發生變化,以及兩點在z軸上的變動,線也會同步更新)。**太多所以我也沒有貼上來,有需要了我會發出來!

double point1[3];double point2[3];double point3[3];double p[3];

double worldpointbegin[3];double worldpointend[3];

int *clickposbegin;int *clickposend;int *click;

class custommouseinteractorstyle : public vtkinteractorstyletrackballcamera

else if(i==1)

}

};vtkstandardnewmacro(custommouseinteractorstyle);

更新:這個是滑鼠拖動begin 和end 中的任意一點,直線隨即更新。可以看到其中有很多**是重複的,我在實際用的時候重複的做成函式呼叫,因為放這函式多了顯得亂,我就直接貼上來了。如果有問題,可以及時溝通!

其中:point1和point2始終是 begin和end 的滑鼠點的二維座標(後面轉化為3維),通過判斷point3與她們兩個的位置關係,判斷當前操作的點。

virtual void onmiddlebuttondown()

virtual void onmiddlebuttonup()

else if (beginorend == 2) //操作的是第二個點

else

}

VTK滑鼠選點

開啟點雲後用滑鼠選點並輸出選中點資訊 catch mouse events class mouseinteractorstyle public vtkinteractorstyletrackballcamera virtual void onleftbuttondown forward events...

MFC 滑鼠畫線總結

使用mfc滑鼠畫線,主要使用滑鼠左鍵單擊,滑鼠移動,滑鼠右鍵單擊等響應函式完成。在mfc畫線是主要要注意以下幾點 1 座標系問題 在滑鼠左鍵單擊的響應函式中獲取的滑鼠座標為裝置座標 螢幕座標 而畫線使moveto,lineto函式使用的是邏輯座標 客戶區座標 因此在獲取滑鼠單擊座標時需要進行座標系的...

例項107滑鼠畫線

控制項的mousedown事件處理過程青兩個引數,乙個是sender,乙個是mouseeventargs類的事件。mouseeventargs類是定義在system windows forms中的乙個類,它由同乙個命名空間下的eventargs繼承而來。mouseeventargs類的主要屬性有 g...