WebGL旋转功能



我试图用WebGL来理解矩阵的旋转。

我得到了这个mat4((矩阵,我必须应用这些转换:

m = translate(torsoHeight+1*headHeight, 5, 0.0); 
m = mult(m, rotate(theta[head1Id], 1, 0, 0))
m = mult(m, rotate(theta[head2Id], 0, 1, 0));
m = mult(m, translate(0.0, -0.5*headHeight, 0.0));
figure[headId] = createNode( m, head, leftUpperArmId, null);
break;

我不完全了解 mult 函数的工作原理。第一个参数是我的矩阵。theta[]是这样构建的:

var theta = [0, 0, 0, 0, 0, 0, 180, 0, 180, 0, 0];

var headId  = 1;
var head1Id = 1;
var head2Id = 10;

如果我认为第二个参数是另一个使用 rotate(( 函数构建的矩阵,我是否正确?在这种情况下,旋转功能如何工作?

rotatetranslate是创建矩阵的函数。

rotate看起来它的参数(angle, vectorx, vectory, vectorz)围绕给定的向量创建一个矩阵旋转点。

mult是 4x4 矩阵的标准数学乘法。

您可能应该深入研究线性代数教程,例如 https://open.gl/transformations

最新更新