围绕对象中心旋转摄像机的WPF方法

6
Expression Blend可以导入3D模型。我想用代码动画一个3D对象。但是我似乎无法弄清楚我必须修改哪些属性值才能使对象旋转。让我给你展示一下:
所以,如果我想旋转这个对象,我可以使用相机轨道工具,并且如果我使用它,最终可能会得到以下结果:
我知道我可以创建一个Storyboard并通过修改对象来创建动画。我需要通过滑块沿x轴旋转对象。如果我只修改一个值,它将以奇怪的方式旋转。实际上,如果我希望如此,我必须更改几个属性。例如,当我使用相机轨道工具沿着x轴旋转对象时,我可以看到所有这些属性正在更改。我需要弄清楚旋转对象所使用的算法是什么。
1个回答

8
移动相机位置以使其围绕X轴旋转的数学公式就是圆的参数方程:

Parametric Equation of a Circle

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

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

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

所有这些都不难计算,但有一种更简单的方法。相反,保持相机固定,旋转对象。这使得动画变得更加容易。以下是一个包含该方法示例(包括动画)的MSDN文章:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接