gpt4 book ai didi

javascript - 无需临时矩阵的旋转和平移 R-T 矩阵

转载 作者:行者123 更新时间:2023-12-03 11:38:51 25 4
gpt4 key购买 nike

有没有办法从旋转四元数和平移向量创建矩阵,而无需先将两者转换为矩阵?

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

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

var rotationMatrix = new mat4(rotation);
var translationMatrix = new mat4(translation);

var matrix = mat4.product(translationMatrix, rotationMatrix);

相反,我想执行以下操作:

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

var matrix = new mat4(rotation, translation);

分配两个临时矩阵似乎效率低下且浪费,尤其是在 Javascript 中,它们必须在堆上分配。

谢谢!

最佳答案

左上角的 3×3 子矩阵是旋转,右上角的 3×1 向量是平移,下面一行是 (0,0,0,1)。 (这是假设您将矩阵乘以列向量,而不是行向量乘以矩阵。否则情况将被转置。)所以,是的,应该很容易调整从旋转创建矩阵的构造函数来满足存在额外平移向量的情况。或者,您可以通过旋转创建矩阵,然后更改其中的一些条目以合并翻译。

请注意,这假设您的符号表示“旋转然后翻译”。如果是相反的情况,那么您必须先将旋转应用于平移向量,然后再将其包含到矩阵中。

关于javascript - 无需临时矩阵的旋转和平移 R-T 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26358140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com