Текущий архив: 2006.04.02;
Скачать: CL | DM;
ВнизКак выщитать матрицу. Найти похожие ветки
← →
Kovenos (2005-09-25 13:21) [0]Привет, скажите пожалуйста как выщитывать матрицу 4*4 и вобще что это такое. Можно ссылку подкинуть.
← →
Kerk © (2005-09-25 13:50) [1]Нефиг было ее туда засовывать.. теперь хрен вытащишь..
← →
Kerk © (2005-09-25 13:53) [2]:)))) выщитать... не разобрал на скорости :))
а матрицы не выщитывают.. определитель можно высчитать..а матрицу.. хмм.. "что это такое"? (с)
← →
NewWonder © (2005-09-25 14:01) [3]Учебник по линейной алгебре нужен Вам.
← →
NewWonder © (2005-09-25 14:04) [4]Матрица - табличка чисел а-ля вот:
1 2 3
4 5 6
7 8 9
Это матрица, квадратная, третьего порядка. Можно посчитать определитель, транспонировать её, умножить на какое-нибудь число, строки поменять местами. Одним словом, матрица - клёвая вещь :) Определитель можно высчитать по правилу треугольников, например ;)
Удачи ;)
← →
NewWonder © (2005-09-25 14:06) [5]По сабжу, квадратную матрицу четвёртого порядка (то есть её определитель) считается методом разложения по строке/столбцу, если я ничего не путаю.
← →
XProger © (2005-09-25 14:15) [6]Если это то о чём я думаю, то...
Матрица описывает некоторые вершинные преобразования.
В 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
Страницы: 1 вся ветка
Текущий архив: 2006.04.02;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.044 c