2016-09-11 12 views
0

私はこの結果を何も得ずにかなり長い間探し続けてきました。C++回転キューブの座標(無制限)

私の目標は、OpenGL回転キューブボーダーボックスのように回転キューブを形成する方法でカーソル位置を設定することです。

OpenGLには回転機能が組み込まれているので、実際に私が適応できるものではありません。 誰かが私がこれについてどうやって行くかについてのアイデアがあるかどうかは疑問です。 これが何であるか疑問に思っている場合は、作成された各フレーム(立方体回転点)にMsPaintで描画されたものをすべて消去し、次の位置が描画を開始します。

+0

今は拡張投稿を書いていませんが、https://en.wikipedia.org/wiki/Rotation_matrixを参照してください。glm(OpenGL数学)ライブラリを調べることもできます。 –

+0

これはあまり明確ではありません。カーソルと回転キューブとMS Paintの間の接続は何ですか?そして、どのカーソルを設定しようとしていますか? – molbdnilo

+0

ここから始めることができます:https://en.wikipedia.org/wiki/Affine_transformation –

答えて

0

特殊なライブラリの助けを借りずにCでキューブを回転しようとすると、行列操作を使って座標を変換する必要があります。

  1. あなたは、あなたの座標ベクトルへMを掛けてください
  2. (のはMそれを呼ぼう)roatation行列を取得sohuld - 結果は新しい 座標です。

    |cos f +-sin f| |x| |x'| 
    |    | | | = | | 
    |+-sin f cos f| |y| |y'| 
    

    は、3D回転のために、あなたは3x3のマリックスを使用する必要があります2D回転、例えば

( - - 回転角度+ fは回転方向です)。 Alsooあなたは、軸を回転す​​る必要があり、それに応じて、あなたは行列Mを選択する必要があります。

はMx(x軸の周りに回転):

|1  0  0 ||x| |x'| 
|0 cos f -sin f||y| = |y'|      
|0 sin f cos f||z| |z'| 

マイ(y軸の周りに回転):

|cos f  0  sin f ||x| |x'| 
| 0   1  0  ||y| = |y'|      
|-sin f  0  cos f ||z| |z'| 

Mzを(Z軸回りに回転):

| cos f -sin f 0 ||x| |x'| 
| sin f cos f  0 ||y| = |y'|      
| 0  0  1 ||z| |z'| 
関連する問題