|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Помогите с матрицей
Напишите пожалуйста примеры работы с матрицей, а то я вообще даже не знаю с чего начать, а это очень нужно более-менее узнать до завтра.
Вот что известно: Код:
Ясно, что если нам потребуется (а нам потребуется :) ) проводить для каждой точки в пространстве параллельный перенос + поворот в пространстве, то придется сделать огромное количество преобразований. Можно построить матрицы преобразований, помножив точку - вектор на которую, мы получим результат — координаты искомой точки. матрица параллельного переноса: [ 1 0 0 0 ] [ 0 1 0 0 ] [ 0 0 1 0 ] [ x y z 1 ] матрица растяжения/сжатия: [ z 0 0 0 ] [ 0 y 0 0 ] [ 0 0 x 0 ] [ 0 0 0 1 ] матрица поворота вокруг оси x: [ 1 0 0 0 ] [ 0 cos α sin α 0 ] [ 0 -sin α cos α 0 ] [ 0 0 0 1 ] матрица поворота вокруг оси y: [ cos α 0 -sin α 0 ] [ 0 1 0 0 ] [ sin α 0 cos α 0 ] [ 0 0 0 1 ] матрица поворота вокруг оси z: [ cos α sin α 0 0 ] [-sin α cos α 0 0 ] [ 0 0 1 0 ] [ 0 0 0 1 ] Теперь, зачем нужны матрицы в 3D-програмировании, если можно все сделать с помощью векторов, и если, например, поворот точки с помощью векторов занимает меньше операций, чем используя матрицы. Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей |