Показать сообщение отдельно
  #1  
Старый 03.02.2008, 19:14
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Восклицание Помогите с матрицей

Напишите пожалуйста примеры работы с матрицей, а то я вообще даже не знаю с чего начать, а это очень нужно более-менее узнать до завтра.
Вот что известно:
Код:
Ясно, что если нам потребуется (а нам потребуется :) ) проводить для каждой точки в пространстве параллельный перенос + поворот в пространстве, то придется сделать огромное количество преобразований. 
Можно построить матрицы преобразований, помножив точку - вектор на которую, мы получим результат — координаты искомой точки. 

матрица параллельного переноса: 
  [ 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-програмировании, если можно все сделать с помощью векторов, и если, например, поворот точки с помощью векторов занимает меньше операций, чем используя матрицы.
Напишите пожалуйста примеры хоть с некоторыми из данных. Желательно, если можете на GLScene и как можно проще. Пожалуйста напишите пример как можно проще, очень нужно, срочно
__________________
Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей
Ответить с цитированием