Форум: "Игры";
Текущий архив: 2004.01.23;
Скачать: [xml.tar.bz2];
ВнизОбратное вращение матрицы Найти похожие ветки
← →
MeF88 (2003-07-07 14:48) [0]Допустим у меня есть quad(прямоугольник) с центром вращения в точке(x2,y2) расположенный в координате (qx,qy) и шириной и высотой(qw и qh). Я делаю нечто вроде:
x2=qx+qw/2
y2=qy+qh/2
D3DXMatrixRotationZ(matWorld1, Angle/255*D3DX_PI*2);
D3DXMatrixTranslation(matWorld2,x2,y2,0);
D3DXMatrixMultiply(matWorld1,matWorld1,matWorld2);
pd3dDevice.SetTransform(D3DTS_WORLD, matWorld1);
Далее вывожу два треугольника.
Причем левая верхняя вершина имеет координаты (-qw/2,-qh/2)
Правая верхняя: (qw/2,-qh/2)
Левая нижняя: (-qw/2,qh/2)
Правая нижняя: (qw/2,qh/2)
Допустим, что некоторая точка вращалась вместе с Quad и теперь имеет координаты (x,y). Как мне найти координаты этой точки до вращения, при условии, что её координаты до вращения не известны и вращение произошло.
Я уже 4 часа над этим парюсь, с применением и sin и cos, arcsin, arccose и вращение матрицы, и создание вектора, который трансформаруется матрицей, повернутой в противоположную сторону...
← →
Axis_of_Evil (2003-07-07 15:21) [1]>Допустим, что некоторая точка вращалась вместе с Quad и теперь
>имеет координаты (x,y). Как мне найти координаты этой точки до
>вращения, при условии, что её координаты до вращения не
>известны и вращение произошло.
Первое, что пришло в голову:
A = матрица преобразований;
X1 = A*X0 // искаем X0
X0 = X1*A" // A" = обратная матрица
Когда писал - спешил => мог хъню написать // или не по теме
← →
MeF88 (2003-07-07 17:20) [2]Фенкс конечно, но как оказалось, я просто минусы и плюсы в некоторых формулах перепутал, после того как спросишь кого-нить о чем-то столько гениальных идей в голову приходит =)
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2004.01.23;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.006 c