Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 如何从三维四元数旋转中获取二维角度?_Math_2d_Quaternions - Fatal编程技术网

Math 如何从三维四元数旋转中获取二维角度?

Math 如何从三维四元数旋转中获取二维角度?,math,2d,quaternions,Math,2d,Quaternions,我想知道如何从三维四元数旋转中获得二维角度? 例如,我有一个3d骨骼,我想让我的2d精灵跟随2d正交摄影机中头部骨骼的旋转 谢谢你的回答 有什么办法吗?也许你应该应用3D旋转,然后执行2D投影以获得你想要的位置。不知道为什么你需要一个角度-你可以展示一个示例图像吗?谢谢@Roger,但是我没有任何图像,我只是用LibGDX测试,似乎我可以通过float angle=(float)(2*Math.acos(rotation.w));这里的旋转是四元数,但在骨骼旋转超过180度后,精灵会翻转方向。我

我想知道如何从三维四元数旋转中获得二维角度? 例如,我有一个3d骨骼,我想让我的2d精灵跟随2d正交摄影机中头部骨骼的旋转

谢谢你的回答


有什么办法吗?

也许你应该应用3D旋转,然后执行2D投影以获得你想要的位置。不知道为什么你需要一个角度-你可以展示一个示例图像吗?谢谢@Roger,但是我没有任何图像,我只是用LibGDX测试,似乎我可以通过float angle=(float)(2*Math.acos(rotation.w));这里的旋转是四元数,但在骨骼旋转超过180度后,精灵会翻转方向。我想的是,你有一对3D坐标(表示骨骼的端点)投影到2D(你得到一个2D向量),然后你将四元数应用到3D坐标并再次投影到2D(获取另一个2D向量)。然后使用第一个和第二个2D向量之间的角度来获取所需内容。@Roger这是一个类似OpenGL渲染系统中使用的解决方案,我找到了一些文章并试图找到一个好的解决方案。还将测试您的方式,似乎合理。