如何在 WPF 中使用鼠标在 ViewPort3D 中旋转相机?

Sur*_*LSV 6 c# wpf xaml viewport3d

我能够直接在 XAML 中设置放置在 viewport3d 中的透视相机的位置和方向。但我想知道如何使用鼠标输入旋转相机。我更喜欢 C# lang。我实际上被困在如何使用鼠标输入旋转相机的问题上。请帮我。如果有人给我一个示例代码会很有帮助....

MAX*_*AXE 3

我认为这两个链接可以帮助你很多......

在 WPF 中对 3D 相机的位置进行动画处理 (还有一个示例项目可供尝试!)

用鼠标旋转相机

我同意 XNA 可能是 3D 情况的最佳解决方案,但本机 3D 支持和硬件加速渲染也是 WPF 和 XAML 的出色功能!

正如您所看到的,XAML 的 3D 相机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>
Run Code Online (Sandbox Code Playgroud)

...只是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;
    }
}
Run Code Online (Sandbox Code Playgroud)