OpenGLスレ Part11
■ このスレッドは過去ログ倉庫に格納されています
0239デフォルトの名無しさん
2007/07/20(金) 16:00:04改めて考えてみたら、glMultMatrixを使うのは無駄多いかも。
要するにz軸(0,0,1)を任意の方向(x,y,z)に向けられればいいわけだから・・・
Vz=(0,0,1)→V=(x,y,z)
回転軸Vr(rx,ry,rz)は
Vr = Vz x V (外積)
回転角度aは
a = arccos(Vz・V) (・は内積、Vは単位ベクトルとする)
このVrとaが、そのままglRotateの引数に使える、の、かな。
Vz = (0,0,1)を入れて具体的に計算すると、
Vr = (-y, x, 0)
a = arccos(z)
これを、速度ベクトル一個ずつに対応して保存しておけば、
描画するときにglRotate(a, Vr.x, Vr.y, Vr.z)でいけるはず。
ただしGLの角度表現はradじゃなく度なので注意。
あとV(x,y,z)がz軸に平行なときは計算が別になるけど、ま、それは分かるでしょ。
■ このスレッドは過去ログ倉庫に格納されています