在对象wpf的中心周围旋转cammera

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

在此处输入图像描述

所以,如果我想旋转这个物体,我可以使用相机轨道工具 在此处输入图像描述 如果我使用它,我最终会得到类似的东西:

在此处输入图像描述

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

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

圆的参数方程

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

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

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

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

  • 三维转换概述

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