10

ここでドキュメントを読みました: 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) と言ったらどうなりますか

その状況で実際に何が起こっているのか理解できません。誰かが私に説明するのを手伝ってくれますか?

角度のパーセンテージとして回転しますか?

4

3 に答える 3

8

X 軸を中心に 2 度回転します。リンクしたページには、次のようにも書かれています。

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

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

結論: x、y、および z パラメーターはベクトルを定義します。その方向は唯一の関連部分であり、長さは関数によって処理されます。したがって、任意のベクトルを安全に配置でき、そのベクトルを中心に回転するだけです。

于 2013-10-03T23:52:41.390 に答える
1

とは言っていませんがx、ベクトルです。MathML 対応のブラウザーでページを開くと、次のように表示されます。yz

glRotate は、ベクトル (x,y,z) を中心とした角度の回転を生成します。

すなわちxyzは、単一のベクトルのコンポーネントです。同様に、「 xyz = 1 (そうでない場合、GL はこのベクトルを正規化します) 」とは言いません。代わりに、次のように言います。

||(x,y,z)||=1 (そうでない場合、GL はこのベクトルを正規化します)。

したがって、(x,y,z)関数が生成するベクトル、回転です。指定したベクトルが正規化されていない場合、GL はそれを正規化するためglRotate(2,0.5,0,0)、 とglRotate(2,0.0174524,0,0)は同等です。

于 2017-12-27T14:27:24.640 に答える