0

WPF 3D ビューポートで 3D カメラの位置をリセットする必要があります。3Dtools のトラックボール デコレータを使用しています。ハッキングして、次を使用してカメラの変換をクリアできることがわかりました。

Transform3DGroup group = camera.Transform as Transform3DGroup;
group.Children.Clear();

ただし、カメラに変換マトリックスがなくなったと推測しているため、これによりトラックボールが壊れます。カメラを作成した場所に戻す方法はありますか?つまり、手動でカメラの位置を変更し、トラックボールを引き続き機能させることはできますか?

編集 :

次のコードを使用して、遠近カメラを作成し、3D ビューポートに追加します。

perspectiveCamera.Position = new Point3D(sceneSize.X * 4 , 
                                         sceneSize.Y , 
                                         sceneSize.Z * (-4));

CameraLookAt = new Point3D(0, (sceneSize.Y / 2), 0);

perspectiveCamera.LookDirection = new Vector3D (
                                  CameraLookAt.X - perspectiveCamera.Position.X, 
                                  CameraLookAt.Y - perspectiveCamera.Position.Y, 
                                  CameraLookAt.Z - perspectiveCamera.Position.Z);
perspectiveCamera.FieldOfView = 24;

Viewport_3D.Camera = perspectiveCamera;

ビューポートには Trackball デコレーターがあり、ユーザーはシーン内でカメラを回転させることができます。ただし、カメラを元の位置にリセットする機能が必要ですが、一度作成した位置を直接設定する方法が見つかりません。

4

1 に答える 1

0

最初に、カメラで使用されているアニメーションを削除する必要があります。メソッド camera.ApplyAnimationClock(ProjectCamera.PositionProperty, null) を使用して削除し、元の値をカメラに割り当てます。

于 2012-02-22T03:33:39.850 に答える