围绕物体中心旋转相机wpf

时间:2011-06-27 00:48:43

标签: c# wpf xaml vector 3d

表达式混合使您可以导入3d模型。我想用代码为3d对象设置动画。我似乎无法弄清楚为了使对象旋转我必须修改的属性值是什么。让我告诉你我的意思:

enter image description here

所以,如果我想要旋转这个物体,我可以使用相机轨道工具enter image description here,如果我使用它,我最终会得到类似的东西:

enter image description here

我知道我可以创建一个故事板并通过修改对象来创建动画。我需要使用滑块沿x轴旋转对象。如果我只修改一个值,它将以一种奇怪的方式旋转,如果我愿意,我实际上必须更改几个属性。例如,当我使用相机轨道工具沿x轴旋转对象时,我可以看到所有这些enter image description here属性都在变化。我需要弄清楚用于旋转对象的算法是什么。

1 个答案:

答案 0 :(得分:8)

移动相机位置以使您看起来围绕X轴旋转的数学运算只是圆的参数方程式:

Parametric Equation of a Circle

其中 t 是从零到 2 pi 的角度。

想象一下,你站在街上看房子。相机的坐标必须沿着房子周围的圆圈,经度和经度不断变化,以保持与房子相同的距离。因此,没有任何一个值可以更改以使其旋转。

一旦知道摄像机位置,方向就是原点和摄像机位置之间的差异。

这一切并不难计算,但有一种更简单的方法。相反,保持相机固定并旋转对象。这使动画更容易。这是一篇MSDN文章,其中包含该方法的示例,包括动画:

该文章适用于WPF和Visual Studio,但您可以轻松地将相同的想法应用于Expression Blend。