![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как выщитать матрицу.
Kovenos © (2005-09-25 13:21:00)Привет, скажите пожалуйста как выщитывать матрицу 4*4 и вобще что это такое. Можно ссылку подкинуть.
XProger (2005-09-25 14:15:00) [1]Если это то о чём я думаю, то...
Матрица описывает некоторые вершинные преобразования.
В OpenGL имеется 3 вида матриц:
GL_MODELVIEW_MATRIX
GL_PROJECTION_MATRIX
GL_TEXTURE_MATRIX
Первая описывает преобразования в мировой системе координат - матрица вида
Вторая преобразования проекции (ортогональная, перспектива) - матрица проекции
Третья описывает преобразования тестурных координат - матрица текстуры
Перед выводом примитива, все его точки домножаются на матрицу вида, затем полученные новые координаты пропускает через матрицу проекции, и на выходе получаем координаты точки в поле вывода (ViewPort)
Чтобы вытащить матрицу необходимо проделать следующее:
glGetFloatv(GL_MODELVIEW_MATRIX, @mm);
Где mm : array [0..15] of single;
Так мы можем получить любую из трёх матриц.
Сама матрица вида выглядит так:
xaxis.x yaxis.x zaxis.x 0
xaxis.y yaxis.y zaxis.y 0
xaxis.z yaxis.z zaxis.z 0
-dot(xaxis, eye) -dot(yaxis, eye) -dot(zaxis, eye) 1
В столбиках описываются вектора Dir Up Left задающие ортогональную систему координат. В последней строке солдержится смещение новой системы координат относительно мировой которая описывается единичной матрицей
1000
0100
0010
0001
Чтобы изменить одну из матриц достаточно переключиться на неё
glMatrixMode(GL_MODELVIEW); // без приставки _MATRIX
и проделать ряд простых операций (glTranslate, glRotate, glScale)
Также можно сбросить матрицу glLoadIdentity;
Сохранить текущее состояние текущей матрицы в кеш glPushMatrix;
И вернуть эту матрицу из кеша glPopMatrix;
Также можно домножить на матрицу glMultMatrixf(@m);
Подробнее об операциях над матрицами можешь почитать по ссылке
http://mirgames.ru/article/gamedev/math
NewWonder (2005-09-25 14:06:00) [2]По сабжу, квадратную матрицу четвёртого порядка (то есть её определитель) считается методом разложения по строке/столбцу, если я ничего не путаю.
NewWonder (2005-09-25 14:04:00) [3]Матрица - табличка чисел а-ля вот:
1 2 3
4 5 6
7 8 9
Это матрица, квадратная, третьего порядка. Можно посчитать определитель, транспонировать её, умножить на какое-нибудь число, строки поменять местами. Одним словом, матрица - клёвая вещь :) Определитель можно высчитать по правилу треугольников, например ;)
Удачи ;)
NewWonder (2005-09-25 14:01:00) [4]Учебник по линейной алгебре нужен Вам.
Kerk (2005-09-25 13:53:00) [5]:)))) выщитать... не разобрал на скорости :))
а матрицы не выщитывают.. определитель можно высчитать..а матрицу.. хмм.. "что это такое"? (с)
Kerk (2005-09-25 13:50:00) [6]Нефиг было ее туда засовывать.. теперь хрен вытащишь..