ポイントのような翻訳を適用する関数が必要glTranslate()
です。乗算する行列を変更および取得するglTranslate()
ような関数を知っている人はいますか?glRotate()
質問する
1345 次
2 に答える
3
そこには何千もの自由行列クラスがあります。Google で検索すると、gl* 関数をまったく使用せずに平行移動と回転を設定できます。
編集:便利なマトリックスクラス以上のものを使用せずにマトリックスを作成したいだけの場合は、次のように glRotatef( angle, x, y, z ) を定義できます。
const float cosA = cosf( angle );
const float sinA = sinf( angle );
float m[16] = { cosA + ((x * x) * (1 - cosA)), ((x * y) * (1 - cosA)) - (z * sinA), ((x * z) * (1 - cosA)) + (y * sinA), 0.0f,
((y * x) * (1 - cosA)) + (z * sinA), cosA + ((y * y) * (1 - cosA)), ((y * z) * (1 - cosA)) - (x * sinA), 0.0f,
((z * x) * (1 - cosA)) - (y * sinA), ((z * y) * (1 - cosA)) + (x * sinA), cosA + ((z * z) * (1 - cosA)), 0.0f,
0.0f, 0.0f, 0.0f, 1.0f
};
ウィキペディアから引用。
平行移動行列は非常に簡単に作成できます: glTranslatef( x, y, z) は次のように定義されます:
float m[16] = { 1.0f, 0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f, 0.0f,
0.0f, 0.0f, 1.0f, 0.0f,
x, y, z, 1.0f
};
行列の乗算と行列とベクトルの乗算は非常に簡単に調べることができます。
ただし、あなたの人生をシンプルにするために、これらすべてを行うマトリックスクラスをダウンロードすることができます...
于 2010-12-14T12:39:53.533 に答える