Я написал веб-программу, которая может использоваться для игры с матрицами трансформации. Он позволяет использовать предустановленные типы и пользовательские.

Play with it online или grab the source.
Должно быть легко играть с цифрами и сразу видеть, как это влияет на рисунок дома. Посмотрите на код, доступный онлайн, чтобы определить, что он делает, и вы должны понимать, что происходит.
Если у вас возникли проблемы, поймите, что матрица 3 × 3 просто умножается на каждую вершину (X & Y координаты) в форме дома. Умножение матриц с вершиной (теперь мы будем ссылаться на него как вектор) и матрица преобразование выглядит так ...
1 0 0 1
0 1 0 * 2
0 0 1 0
Слева является identity matrix (идемпотентная матрицей, которая не влияет на вектор) и вектор 1, 2, 0 (предположим, что это отображает в положение X1 и Y2 в графике упомянутого выше программы и игнорирует окончательный 0
).
Matrix multiplication могут быть визуализированы как так ...
a b c x a * x + b * y + c * z
d e f + y = d * x + e * y + f * z
g h i z g * x + h * y + i * z
Таким образом, в нашем примере, это было бы ...
1 0 0 1 1 * 1 + 0 * 2 + 0 * 0
0 1 0 * 2 = 0 * 1 + 1 * 2 + 0 * 0
0 0 1 0 0 * 1 + 0 * 2 + 1 * 0
ли, что математика и мы получаем конечный вектор .. .
1
2
0
Поскольку мы сказали, что наша единичная матрица не должна изменять значения, мы можем видеть выше, что t Это случай, когда результирующий вектор соответствует оригиналу.
Чтобы объяснить далее, рассмотрите, когда вам нужно перевести вектор. Предположим, мы хотим перевести дом на 5
пикселей вдоль оси X. Мы хотим начать с идентификационной матрицы, но изменим верхнее правое число на 5
и сделаем дополнительное измерение в векторе 1
(вы увидите, почему ненадолго).
1 0 5 1 1 * 1 + 0 * 2 + 5 * 1
0 1 0 * 2 = 0 * 1 + 1 * 2 + 0 * 1
0 0 1 1 0 * 1 + 0 * 2 + 1 * 1
Мы делаем математику снова ...
6
2
1
Мы можем видеть, что первое число (X в наших координатах) были переведены вдоль оси X по 5
. Попробуйте в программе, указанной выше.
Причина, по которой мы сделали третье значение 1
, так, когда математика была выполнена, рассматривался перевод. Если бы это было 0
, оно будет проигнорировано, так как любое число, умноженное на 0
, приводит к 0
.
Если у вас по-прежнему возникают проблемы, ознакомьтесь с видеороликами в Интернете (например, this one), которые могут помочь объяснить его более наглядным образом.
Помните: практически каждый может управлять автомобилем, и почти каждый может узнать это, несмотря на любое самооцененное плохое понимание математики. Просто продолжайте: упорство - ключевое. Удачи.
С перспективой применения? Вы строите любое приложение? – Guru
Я пытаюсь справиться с преобразованиями CSS3 и webkits matrix3d. http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariCSSRef/Articles/Functions.html – gargantuan