WebGL 旋转函数
WebGL rotate function
我正在尝试使用 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() 函数构建的矩阵,我是对的吗?在这种情况下,旋转功能如何工作?
rotate
和 translate
是创建矩阵的函数。
rotate
看起来它的参数是 (angle, vectorx, vectory, vectorz)
来创建一个围绕给定向量旋转点的矩阵。
mult
是 4x4 矩阵的标准数学乘法。
您可能应该学习线性代数教程,例如 https://open.gl/transformations
我正在尝试使用 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() 函数构建的矩阵,我是对的吗?在这种情况下,旋转功能如何工作?
rotate
和 translate
是创建矩阵的函数。
rotate
看起来它的参数是 (angle, vectorx, vectory, vectorz)
来创建一个围绕给定向量旋转点的矩阵。
mult
是 4x4 矩阵的标准数学乘法。
您可能应该学习线性代数教程,例如 https://open.gl/transformations