Javascript 不含临时矩阵的旋转和平移的R-T矩阵

Javascript 不含临时矩阵的旋转和平移的R-T矩阵,javascript,math,matrix,vector,quaternions,Javascript,Math,Matrix,Vector,Quaternions,有没有一种方法可以从旋转四元数和平移向量创建矩阵,而不首先将两者转换为矩阵 我现在正在做的(使用我自己的小数学库)是: 相反,我想做以下几点: var rotation = new quat(...); var translation = new vec3(...); var matrix = new mat4(rotation, translation); 分配两个临时矩阵似乎既低效又浪费,特别是在Javascript中,它们必须在堆上分配 谢谢大家! 左上方的3×3子矩阵是旋转,右上方的

有没有一种方法可以从旋转四元数和平移向量创建矩阵,而不首先将两者转换为矩阵

我现在正在做的(使用我自己的小数学库)是:

相反,我想做以下几点:

var rotation = new quat(...);
var translation = new vec3(...);

var matrix = new mat4(rotation, translation);
分配两个临时矩阵似乎既低效又浪费,特别是在Javascript中,它们必须在堆上分配


谢谢大家!

左上方的3×3子矩阵是旋转,右上方的3×1向量是平移,底部的行是(0,0,0,1)。(这是假设您将矩阵乘以列向量,而不是行向量乘以矩阵。否则情况会被转置。)因此,是的,应该很容易调整通过旋转创建矩阵的构造函数,以适应存在额外平移向量的情况。或者,您可以从旋转创建矩阵,然后更改其某些条目以合并平移

请注意,这假设您的符号表示“旋转然后平移”。如果是相反的,那么在将其包含到矩阵中之前,必须对平移向量应用旋转

var rotation = new quat(...);
var translation = new vec3(...);

var matrix = new mat4(rotation, translation);