Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.026 c
15-1141634591
Yegorchic
2006-03-06 11:43
2006.04.02
Минимизация функции нескольких переменный


11-1123157267
Muller
2005-08-04 16:07
2006.04.02
Как заменить подменю на другое?


2-1142349392
KyRo
2006-03-14 18:16
2006.04.02
Путь к программе


15-1141722985
superoberon
2006-03-07 12:16
2006.04.02
Shelltreeview


4-1137144109
Andrey C
2006-01-13 12:21
2006.04.02
Програмный клик мышки




   Наверх