OpenGLスレ Part4
■ このスレッドは過去ログ倉庫に格納されています
0704デフォルトの名無しさん
NGNGしょうがないなあ。
オイラーアングルを使ってる時に、ある条件で回転の自由度が
現象すること。例えば回転をx,y,zの順で回している場合、
ローテンションマトリクスは
CyCz CySz -Sy 0
SxSyCz-CxSz SxSySz+CxCz SxCy 0
CxSyCz+SxSz CxSySz-SxCz CxCy 0
0 0 0 1
(Cx = cos(x), Sx = sin(x) etc.)
ここで、たまたまy=π/2になると、行列は
0 0 -1 0
sin(x-z) cos(x-z) 0 0
cos(x-z) -sin(x-z) 0 0
0 0 0 1
になる。xとzの変更はともにグローバルな一軸回りの回転に
なってしまうので、両者をどんなにいじっても表現出来ない
回転が出てくる。
回転の補間をかけてる時にパスがこの特異点のそばを通ると、
残りのパラメータxとzに対して回転がえらくセンシティブに
なるんで、関節があらぬ方向にぴくぴく動き出したりする。
数式は Watt&Wattからの丸移しだから間違ってるかもしらんよ。
自分で確かめてね。
■ このスレッドは過去ログ倉庫に格納されています