2015-05-20 3 views
0

Как получить степень поворота от матрицы? например: имеется матрица [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]. Он поворачивается по оси х на 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); 
+0

Как '[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]' отображается на матрицу? – Bathsheba

ответ

0

Если m[1] и m[2] модель точка, то вы в целом правильно.

Единственная проблема у вас есть то, что Вы предполагаете, что Math.cos и Math.sin принимают угол в градусов. Они этого не делают: вам нужно поставить единицы в radians.

Чтобы преобразовать угол от градусов к радианам, умножьте на Pi, затем разделите на 180. Поставьте это значение в тригонометрические функции.