Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在WPF中使用鼠标在ViewPort3D中旋转摄影机?_C#_Wpf_Xaml_Viewport3d - Fatal编程技术网

C# 如何在WPF中使用鼠标在ViewPort3D中旋转摄影机?

C# 如何在WPF中使用鼠标在ViewPort3D中旋转摄影机?,c#,wpf,xaml,viewport3d,C#,Wpf,Xaml,Viewport3d,我可以直接在XAML中设置放置在viewport3d中的透视摄影机的位置和方向。 但我想知道如何使用鼠标输入旋转相机。 我更喜欢C#lang。 我实际上被困在如何使用鼠标输入旋转相机的问题上。 请帮帮我。 如果有人给我一个示例代码,那将很有帮助。…我认为这两个链接可以帮助您很多 (还有一个示例项目要尝试!) 我同意XNA可能是3D情况下的最佳解决方案,但本地3D支持和硬件加速渲染也是WPF和XAML的出色功能 如您所见,XAMLViewport3D的3D摄像头也使用绑定,非常适合应用程序:

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

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

(还有一个示例项目要尝试!)

我同意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>
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;
    }
}