笛卡尔到四元数 glm

Cartesian to quaternion glm

本文关键字:glm 四元数 笛卡尔      更新时间:2023-10-16

我有一个向量指向我需要旋转的方向,但我需要先将其转换为四元数。我在 glm 中找不到有关从笛卡尔坐标转换为四元数的任何信息。这样的功能存在吗?

也许这些会对你有所帮助。可以在其网站上的 v0.9.6 的 API 文档中找到它们:

GLM_FUNC_DECL tvec4<T, P> glm::rotate( tquat<T,P> const &q, tvec4<T,P> const &v )   
Rotates a 4 components vector by a quaternion.    
See also GLM_GTX_quaternion  

GLM_FUNC_DECL tquat<T, P> glm::rotation( tvec3<T,P> const &orig, tvec3<T,P> const &dest )
Compute the rotation between two vectors.    
param orig vector, needs to be normalized param dest vector, needs to be normalized    
See also GLM_GTX_quaternion 

template<typename T, precision P>  
GLM_FUNC_DECL tvec3<T,P>  rotate( tquat<T,P> const &q, tvec3<T,P> const &v ) 
template<typename T, precision P>  
GLM_FUNC_DECL tvec4<T,P>  rotate( tquat<T,P> const &q, tvec4<T,P> const &v ) 
template<typename T, precision P>  
GLM_FUNC_DECL tquat<T,P>  rotation( tvec3<T,P> const &orig, tvec3<T,P> const &dest ) 
template<typename T, precision P>  
GLM_FUNC_DECL tquat<T,P>  shortMix( tquat<T, P> const &x, tquat<T, P> const &y, T const &a ) 
template<typename T, precision P>  
GLM_FUNC_DECL tquat<T,P>  squad( tquat<T,P> const &q1, tquat<T,P> const &q2, tquat<T,P> const &s1, tquat<T,P> const &s2, T const &h ) 
template<typename T, precision P>  
GLM_FUNC_DECL tmat3x3<T,P>  toMat3( tquat<T,P> const &x ) 
template<typename T, precision P>  
GLM_FUNC_DECL tmat4x4<T,P>  toMat4( tquat<T,P> const &x )  
template<typename T, precision P>  
GLM_FUNC_DECL tquat<T,P>  toQuat( tmat3x3<T,P> const &x ) 
template<typename T, precision P>  
GLM_FUNC_DECL tquat<T,P>  toQuat( tmat4x4<T,P> const &x ) 

在这些函数列表中;有一些函数允许您使用返回四元数的两个向量使用四元数旋转,与 matrix3x3 或 4x4 以及其他有用的函数进行转换。