2010-12-06 47 views
5

私は、オブジェクトのTransformプロパティにAxisAngleRotation3Dを適用してx、y、z軸のいずれかを中心に回転するModel3DGroupを持っています。各軸の3D回転角度を取得する方法は?

問題は、メッシュに適用されるさまざまな回転を制御できないことです。 各レンダーループで、x、y、z軸のそれぞれにメッシュの角度を表示する必要があります。

どうすればいいですか?オブジェクト上でAxisAngleRotation3Dオブジェクトを取得しようとしましたが、最後に適用されたローテーションのみを返します。どちらが正しいのですか?

例えば 軸の印加回転があった場合は、次のVector3D(1、1、0) 角:Z軸周りの45

実際の回転が0 がどのように実際に取得することができないであろう各軸の角度?

答えて

2
double rotationX = Vector3D.AngleBetween(new Vector3D(1, 0, 0), yourMatrix3D.Transform(new Vector3D(1, 0, 0))); 
double rotationY = Vector3D.AngleBetween(new Vector3D(0, 1, 0), yourMatrix3D.Transform(new Vector3D(0, 1, 0))); 
double rotationZ = Vector3D.AngleBetween(new Vector3D(0, 0, 1), yourMatrix3D.Transform(new Vector3D(0, 0, 1))); 
関連する問題