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

时间:2012-01-29 00:46:31

标签: c# wpf xaml viewport3d

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

1 个答案:

答案 0 :(得分:1)

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

Animating the Position of a 3D Camera in WPF (还有一个示例项目要尝试!)

Rotating the Camera with the Mouse

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

正如您所看到的,XAML Viewport3D的3D相机完全适合应用程序,也使用绑定:

<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;
    }
}