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