2017-06-23 10 views
0

だから、(1 2、3)の大きさを有している定義は、このボックスを持っている私は45°の3つの全ての軸に沿って回転する:3軸に沿った回転と、各軸の回転とを別々にするのはなぜですか?

Transform { 
    rotation 1 1 1 0.7854 
    children [ 
    Shape { 
     appearance Appearance { material Material {} } 
     geometry Box { size 1 2 3 } 
    } 
    ] 
} 

しかし、私は別々に各軸に沿って同じ回転を適用しますR = R(x)はR(Y)R(Z):

Transform { 
    rotation 0 0 1 0.7854 
    children [ 
    Transform { 
     rotation 0 1 0 0.7854 
     children [ 
     Transform { 
      rotation 1 0 0 0.7854 
      children [ 
      Shape { 
       appearance Appearance { material Material {} } 
       geometry Box { size 1 2 3 } 
      } 
      ] 
     } 
     ] 
    } 
    ] 
} 

ウィキペディアは、私はこのようなすべての回転行列を掛けることができます私に語った:私は別の結果を得ますか?

これは、上記のコードの結果である:

Result

答えて

1

あなたが記述最初の回転である3つの軸まわりの回転が、軸回りの回転(1,1,1)ではありません異なる。それでは、あなたは期待どおりの結果を得られないのです。 ウィキペディアの式から軸(1,1,1)と角度45の回転行列を計算し、それを各軸x、y、zと角度45の回転行列の乗算と比較することができます。異なる行列が得られることがわかります。

+0

ありがとうございます。どのような数式を意味しますか?私はその数式/変換行列を検索してきましたが、適切なものを見つけることができませんでした。私が探索している回転ではなく、3つの回転に適用されるような結果を得る(1、1、1)<---これは私がしたいと思います持ってる。 –

+1

https://en.m.wikipedia.org/wiki/Rotation_matrixの「軸と角度からの回転行列」をご覧ください。数式は軸が単位ベクトルであると仮定しているため、正規化する必要があります。お役に立てれば。 – user19318

+0

それはまさにそれです!どうもありがとうございました!!! –

関連する問題