1. ホーム
  2. opengl

[解決済み] glRotate(angle,x,y,z), この場合のx,y,zは何ですか?

2022-02-16 23:11:38

質問内容

こちらのドキュメントを読みました。 http://www.opengl.org/sdk/docs/man2/xhtml/glRotate.xml

角度の単位が度であることを指定しています。 X,Y,Zはベクトルであることが書かれています。 glRotate(2,1,0,0) と言えば、X軸を中心に2度回転させるということです。

glRotate(2,0.5,0,0) と glRotate(2,0.0174524,0,0) と言えばどうなるか?

その状況で実際に何が起こっているのか理解できないのですが、どなたか解説していただけませんか?

角度の割合で回転するのでしょうか?

解決方法は?

X軸を中心に2度回転したままです。リンク先のページには、次のようなことも書いてあります。

x y z = 1 (if not, the GL will normalize this vector).

ベクトル (x,y,z) が単位ベクトル(長さ1)であることを意味し、そうでない場合、GLはベクトルを正規化(長さで割って、長さ1にする)します。

結論:x,y,z パラメータはベクトルを定義し、その方向だけが関連し、長さは関数によって処理されます。したがって、どんなベクトルでも安全に入力することができ、そのベクトルに対して単純に回転することになります。