2

我正在使用 CMAttitude 中的俯仰和滚动来控制 iPhone 游戏中某个点的位置。当我开始关卡时,我会注册参考姿态,并在游戏中使用

[attitude multiplyByInverseOfAttitude:attitudeRef] 

获取相对于参考的当前姿态,然后控制点的水平位置(具有俯仰属性)和垂直位置(具有滚动属性)。

问题是,我想添加一个功能,仅将参考姿态 aspectRef 的滚动组件重置为自定义值。CMAttitude 欧拉角是只读属性,我显然无法为自己创建一个具有自定义滚动和俯仰角的自定义 CMAttitude 对象。

我怎么能那样做?

4

1 回答 1

0

不幸的是,没有简单的方法可以实现这一目标。正如您所说,CMAttitude不提供任何功能来操作它或创建实例。也就是说,您必须自己进行乘法运算。此外,您将需要一个额外的四元数类,因为CMQuaternion只是一个结构。

好消息是,例如cocoamath项目中已经提供了您需要的所有代码。看看multiplyByInverseOfAttitude (CMattitude Class ) 是如何实现的?有关四元数数学基础知识的一些指导和更多链接。

于 2013-02-26T10:13:56.247 回答