Javascript 从矩阵接收旋转
如何从矩阵接收转动度? 例如: 有一个矩阵[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1]。 它在x轴上旋转90度。 如何从一个矩阵接收这些最90度? javascript代码:Javascript 从矩阵接收旋转,javascript,matrix,Javascript,Matrix,如何从矩阵接收转动度? 例如: 有一个矩阵[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1]。 它在x轴上旋转90度。 如何从一个矩阵接收这些最90度? javascript代码: var a=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]; function rotateX(m, angle) { var c = Math.cos(angle); var s = Math.sin(angle); var mv1 = m[1], m
var a=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];
function rotateX(m, angle)
{
var c = Math.cos(angle);
var s = Math.sin(angle);
var mv1 = m[1], mv5 = m[5], mv9 = m[9];
m[1] = m[1] * c - m[2] * s;
m[5] = m[5] * c - m[6] * s;
m[9] = m[9] * c - m[10] * s;
m[2] = m[2] * c + mv1 * s;
m[6] = m[6] * c + mv5 * s;
m[10] = m[10] * c + mv9 * s;
}
rotateX(a,90);
console.log(a);
如果
m[1]
和m[2]
为一个点建模,那么您大体上是正确的
你唯一的问题是你假设Math.cos
和Math.sin
接受以度为单位的角度。他们没有:你需要提供弧度单位
要将角度从度转换为弧度,请乘以Pi,然后除以180。向三角函数提供该值。如何将
[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]
映射到矩阵?