- 239 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 16:00:04 ]
- >238
改めて考えてみたら、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軸に平行なときは計算が別になるけど、ま、それは分かるでしょ。
|

|