Как повернуть камеру в ViewPort3D с помощью мыши в WPF? - PullRequest
4 голосов
/ 29 января 2012

Мне удалось установить положение и направление перспективной камеры, помещенной в viewport3d непосредственно в XAML. Но я хотел бы знать, как я могу вращать камеру с помощью мыши. Я бы предпочел C # lang. Я на самом деле застрял в точке, как вращать камеру с помощью мыши. Пожалуйста, помогите мне. Было бы полезно, если бы кто-нибудь дал мне пример кода ....

1 Ответ

1 голос
/ 28 августа 2012

Я думаю, что эти две ссылки могут вам очень помочь ...

Анимация положения 3D-камеры в WPF (есть также пример проекта, чтобы попробовать!)

Поворот камеры с помощью мыши

Я согласен, что, возможно, XNA будет лучшим решением для трехмерных ситуаций, но встроенная поддержка 3D и аппаратное ускорение рендеринга также являются фантастическими функциями WPF и XAML!

Как видите, 3D-камера для XAML Viewport3D идеально подходит для приложения, также используя привязки:

<Viewport3D.Camera>
    <PerspectiveCamera x:Name="camera"
                       UpDirection="0,0,1"
                       LookDirection="{Binding RelativeSource={RelativeSource Self}, Path=Position, Converter={StaticResource lookBackConverter}}"
                       Position="0,0,0" />
</Viewport3D.Camera>

... и просто обычная IValueConverter реализация, позволяющая камере двигаться:

public class LookBackConverter : IValueConverter 
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return new Point3D(0,0,0) - (Point3D)value;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return null;
    }
}
...