在我的3D应用程序中,我将对象的位置存储在向量中,并且它在四元数中围绕原点旋转.我需要围绕具有任意原点的矢量旋转对象.我尝试将位置 - vectorOrigin和旋转转换为矩阵,旋转矩阵,然后从结果矩阵中提取位置和旋转作为向量和四元数.位置正常,但旋转保持不变(对象围绕给定矢量旋转,但它始终面向相同方向).
我的方法错了还是我有错误?
我不确定你为什么期望轮换改变.你有程序化的"生物"代表原点,目的地点和旋转.基于其他两个"生物"计算目的地点不应该影响它们.
通常的做法怎么样?如果需要围绕点(a,b,c)旋转位置(x,y,z),首先平移位置,使旋转位于原点周围:使用(xa,yb,zc)作为位置,像往常一样围绕原点旋转以获得新的平移位置(x'-a,y'-b,z'-c),然后平移并获得新位置(x',y',z').