Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];

Вниз

Как выщитать матрицу.   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.042 c
1-1141126052
oleg__
2006-02-28 14:27
2006.04.02
Загрузка процессора приложением


2-1142850570
Leshas
2006-03-20 13:29
2006.04.02
Собственная функция - результат типа array


2-1142582433
MixAnOL
2006-03-17 11:00
2006.04.02
Глобальный {$DEFINE DEBUG}


15-1141235641
Gydvin
2006-03-01 20:54
2006.04.02
Поставил себе ADSL


4-1137563866
ZZZ
2006-01-18 08:57
2006.04.02
Как определить серийный номер...?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский