Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从矩阵接收旋转_Javascript_Matrix - Fatal编程技术网

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

如何从矩阵接收转动度? 例如: 有一个矩阵[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], 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]
映射到矩阵?