Войти
ПрограммированиеФорумФизика

Матрица в ODE

#0
21:30, 25 сен. 2006

захотел повернуть геометрию в телес помощь dGeomSetRotation, но не пойму за что отвечают элемены матрицы
TdMatrix3 = array[0..4*3-1] of TdReal;
где бы взять примеры что на что надо перемножать, что бы получить например матрицу поворота


#1
12:21, 26 сен. 2006

в ОДЕ матрица это просто  массив 4х4. Своих функций, свойственных матрицам (вращение по осям и т.д.) там естественно нет, так что придется писать свои, но это еще зависит от системы координат ОДЕ.

#2
20:55, 26 сен. 2006

_mr.angel
вот вот писать то придется самому ну как если не известно за что отвечают элементы матрицы

#3
3:00, 27 сен. 2006

Kavis
эээ... как это неизвестно?
всё хорошо известно. по столбцам матрицы находятся координаты базисных векторов нового фрейма.
и вообще срочно читать учёбник по линейной алгебре

#4
11:17, 27 сен. 2006

CyberZX
Неужели ты хочешь сказать что все матрицы одинаковы, даже в D3d и Opengl они разные!

#5
11:56, 27 сен. 2006

матрицы одинаковы в линейной алгебре.

#6
0:32, 30 сен. 2006

CyberZX
jD
если все такие умные то хоть покажите как сделать поворот на примере практическом!!!

#7
3:37, 30 сен. 2006

Kavis
в смысле? как сгенерировать матрицу поворота или что?

#8
8:00, 30 сен. 2006

Ну вот к примеру есть функция которая по идеии крутит геометрию
  procedure dGeomSetRotation(const Geom : PdxGeom; const R: TdMatrix3);
Я например хочу повернуть геометрию отнеосительно ее центра вокруг оси Z, что мне нужно сделать с матрицей R (КАК ЕЕ СГЕНЕРИРОВАТЬ)
В D3d все описано по полочкам что надо сделать с матрицами, а в ODE черт голову сломит....

#9
14:17, 30 сен. 2006

ну и как мне написать функцию поворота матрицы которая в ODE, я прям не знаю все ходят вокруг да около, но никто секрет не открывает дайте практический пример!!!

#10
17:53, 30 сен. 2006

Kavis
ты просто хочешь чтобы другие что то сделали за тебя?

#11
17:58, 30 сен. 2006

jD
я просто не хочу изобретать велосипед!
форум для этого и сделан чтобы делится знаниями

#12
18:40, 30 сен. 2006

ну вот:
>14.1. Соглашение о хранении матриц

>Операции над матрицами, такие как разложение на множители, дороги, поэтому мы должны хранить данные таким образом чтобы с ними >можно было удобно работать. Я хочу сделать позже 4-ех компонентную SIMD оптимизацию следующим образом: хранить матрицу по >строкам, и каждая строка будет представлять структуру из четырех элементов. В неиспользуемые элементы в конце каждой строки/столбца >должны быть записаны нули. Это называется “стандартный формат”. Надо надеяться что в будущем, с выходом все большего числа >процессоров поддерживающих 4-ех компонентные SIMD’ы (особенно для быстрой 3D графики), такое решение принесет пользу.

>Исключение составляют матрицы имеющие только одну строку или столбец (вектора), они всегда хранятся как строка, т.е. не добавляется ни >каких дополнительных элементов за исключением недостающих элементов в конце строки.

>Таким образом все 3х1 вектора с плавающей точкой хранятся как 4х1 вектора: (х,х,х,0).

то есть получаем 3x4 , последний столбец нулевой.

ПрограммированиеФорумФизика

Тема в архиве.