私は、変換、回転、スケーリングなどの基本機能を備えたC++での単純なメッシュビューアの実装に取り組んでいます。マウスを使用してz軸に沿ったオブジェクトの回転を実装することに固執しています。私が実装したいのは次のとおりです。
- マウスをクリックして垂直にドラッグし(単純なしきい値を使用して水平軸に沿ったわずかな偏差をフィルタリングするため、ほぼ垂直になります)、オブジェクトをy軸に沿って回転させます(この部分は完了です)。
- 上記のようにマウスをクリックして水平方向にドラッグし、オブジェクトをx軸に沿って回転させます(この部分も実行されます)。
- z軸の回転の場合、円形(または円弧に沿った)のマウスの動きを検出したいと思います。私はこの部分で立ち往生していて、これを実装する方法がわかりません。
上記の2つについては、atan2()を使用して移動角度を決定します。しかし、どうすれば円運動を検出できますか?