- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
GLGravity iPhone 示例展示了如何使用加速计和 OpenGL,但遇到了万向节锁定问题。我想知道是否有任何代码可以使用四元数旋转而不是欧拉角?任何帮助将不胜感激,我长期以来一直在努力解决这个问题,但没有成功......
最佳答案
在尝试自己实现和使用事物理论之前,它有助于很好地掌握事物的理论。下面是两篇关于使用四元数进行旋转的介绍性文章。两者主要与平滑旋转插值和避免累积旋转中的万向节锁定有关:
Gamedev.net - Quaternion Powers
Gamasutra - Rotating Objects Using Quaternions
现在,就实际代码而言,我建议获取并使用“行业实力”向量数学库,而不是自行开发。我的建议是捕获 Bullet 物理中间件项目的 LinearMath 部分。 Bullet 物理以及所包含的线性数学库由索尼的一些顶级工程师开发,并且多年来一直在积极开发。它是免费提供的,不受任何许可证(Zlib许可证)的限制,并且被世界各地的专业游戏开发者使用。该库是跨平台/架构的,可以在从 iPhone 到 PS3 的任何设备上编译。
该库提供 Quaternion类,允许您从欧拉角或绕任意轴旋转创建四元数,例如使用setEulerZYX 。一旦你有了四元数,就会有适用于它们的所有常见操作的内置函数;加、减、乘、归一化、slerp 等等。
为了将最终的四元数实际应用于 OpenGL 渲染,Transform类(class)允许您construct四元数的矩阵。变换类又包含一个函数 getOpenGLMatrix它直接为您提供一个兼容的矩阵以传递给 OpenGL。
该库还包含许多其他非常有用的矩阵和向量类和函数。
从 google code 获取最新的子弹分布,或者直接从 subversion 获取代码的 LinearMath 部分:svn checkout http://bullet.googlecode.com/svn/trunk/src/LinearMath
关于使用四元数的 iPhone GLGravity 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2488100/
GLGravity iPhone 示例展示了如何使用加速计和 OpenGL,但遇到了万向节锁定问题。我想知道是否有任何代码可以使用四元数旋转而不是欧拉角?任何帮助将不胜感激,我长期以来一直在努力解决这
我是一名 iOS 程序员,正在学习 OpenGL ES 以便在我的应用中添加显示 3D 模型的功能。我正在研究 GLGravity 示例,并且一直在玩 teapot.h 模型。我试图了解数据在此模型中
当然,我在我的新 iPad (4g) 上尝试的第一件事就是旧的 GLGravity例子。我所做的唯一修改是将目标设备设置为“iPad”。 但是,当在设备上运行时,UIView 的边界设置为 768,1
我是一名优秀的程序员,十分优秀!