2012-01-29 43 views
3

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

+0

我不知道你在做什么,但你有没有考虑切换到XNA? – 2012-01-29 01:16:37

+0

@Marc,先生,现在我使用WPF,如果我找不到任何缩放,平移和旋转3D场景的方式,我会切换到XNA ... – 2012-01-29 06:35:02

回答

1

我认为这两个环节可以帮助你很多......

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

Rotating the Camera with the Mouse

我同意,也许XNA将是3D的情况下最好的解决办法,但原生3D支持和硬件加速渲染也是WPF和XAML的神奇的功能!

正如你所看到的,一个3D摄像头XAML Viewport3D与aplication完全符合,也使用绑定:

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