2017-07-18 23 views
0

デフォルトのQt3D OrbitCameraControllerの動作は次のとおりです。 - カメラを移動するには左マウスを使用します。 - カメラを回転させるための右マウス。Qt3D OrbitCameraControllerの動作を変更する方法。マウスを左に回してカメラを回転させます

単純に製品モデルを表示するには、逆の解決策が必要です。 C++コードまたはAxisActionHandlerが動作する可能性がありますが、書き方がわかりません。手伝ってくれてありがとう。

答えて

1

さまざまなソリューションを試した後、MouseHandlerを使用してこのタスクを完了しました。コアコード以下である:

Entity{ 
    id: root 
    property Camera camera; 
    MouseDevice { 
    id: mouseDevice 
    } 
    MouseHandler { 
    property point _lastPt; // 鼠标最后的位置 
    property real _pan;  // 相机沿y轴旋转角度 
    property real _tilt;  // 相机沿x轴旋转角度 
    on_PanChanged: root.camera.panAboutViewCenter(_pan); 
    on_TiltChanged: root.camera.tiltAboutViewCenter(_tilt); 

    sourceDevice: mouseDevice 
    onPressed: {_lastPt = Qt.point(mouse.x, mouse.y);} 
    onPositionChanged: mouseMove(mouse); 
    ... 
    function mouseMove(mouse){ 
     if (mouse.buttons == 1){ 
      _pan = -(mouse.x - _lastPt.x); 
      _tilt = (mouse.y - _lastPt.y); 
      _lastPt = Qt.point(mouse.x, mouse.y); 
     } 
    } 
} 

}

関連する問題