Функция поворота WebGL - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь понять вращение матриц с помощью 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;

Я не совсем понял, как работает функция мульт.Первый параметр - это моя матрица. theta [] построен следующим образом:

var theta = [0, 0, 0, 0, 0, 0, 180, 0, 180, 0, 0];

и

var headId  = 1;
var head1Id = 1;
var head2Id = 10;

Прав ли я, если бы думал, что второй параметр - это другая матричная сборка сфункция rotate ()?В этом случае, как работает функция вращения?

1 Ответ

0 голосов
/ 10 мая 2018

rotate и translate - функции, которые создают матрицы.

rotate выглядит как аргументы (angle, vectorx, vectory, vectorz) для создания матрицы, вращающей точки вокруг заданной векторной диаграммы.

mult - стандартное математическое умножение для матриц 4x4.

Вы, вероятно, должны изучить такие учебники по линейной алгебре, как https://open.gl/transformations

...