rotation - 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() 函数构建的矩阵,我是对的吗?在这种情况下,旋转功能如何工作?
解决方案
rotate
并且translate
是创建矩阵的函数。
rotate
看起来它的论点是(angle, vectorx, vectory, vectorz)
围绕给定的向量创建一个矩阵旋转点。
mult
是 4x4 矩阵的标准数学乘法。
您可能应该深入研究线性代数教程,例如https://open.gl/transformations
推荐阅读
- c - some confuse about elf.h
- java - 如何在 logback.xml 中获取 maven 项目版本
- c - 程序突然结束 - C
- sql - 如何使用 ORACLE REGEX 函数删除所有前导和尾随换行符和空格?
- bazel - 使用 strategy_regexp 进行 TestRunner 操作?
- javascript - 一种更好的方法来遍历一组项目
- oracle - SQL 开发人员:侦听器拒绝连接
- sass - sassOptions 中的 data 选项在升级到 v3 并用 sass 替换 node-sass 后停止在 gatsby-plugin-sass 中工作
- visual-studio-code - 机器人框架中 Python 关键字的 Intellisense 在 VS Code 中不起作用
- javascript - 在数组中的特定过滤器之后添加对象的总和