Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.052 c
15-1142065152
Труп Васи Доброго
2006-03-11 11:19
2006.04.02
Альтернативные потоки NTFS


15-1141897687
iamdanil
2006-03-09 12:48
2006.04.02
PATH environment variable


2-1141739126
Tort
2006-03-07 16:45
2006.04.02
Запретить крыску


2-1142425112
ЧиЧиЧи
2006-03-15 15:18
2006.04.02
Сохранять значения в ListView


1-1140940887
Paha
2006-02-26 11:01
2006.04.02
TICQClient и сообщения с мобильника