forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Преобразование координат в D3D (http://forum.boolean.name/showthread.php?t=6711)

mr.DIMAS 06.10.2008 16:15

Преобразование координат в D3D
 
Т.к я щас пишу свой графический движок, а опыта работы с D3D у меня маловато то ессесно возникла глупая(а мож и нет )проблема преобразования координат:wallbash: . Знач юзаю я функция SetTransform(D3DTS_WORLD,&matrix).матрица работы с объектом (вращение , движение) создается при помощи вот этой функции:

void RotateMatrixOnAxis(D3DXMATRIX *matWorld, D3DXVECTOR3 vPos, D3DXVECTOR3 vAxs, float fRad )
{
if( matWorld != NULL )
{
// это положение матрицы
D3DXVECTOR3 vDist = D3DXVECTOR3( matWorld->_41, matWorld->_42, matWorld->_43 );
// получаем смещение относительно О
vDist -= vPos;
// матрица такая же как и изменяемая
D3DXMATRIX mWorldO = *matWorld;
// только смещаем на полученный вектор
//ChangeMatrixPosition( &mWorldO, vDist );
mWorldO._41=vDist.x;
mWorldO._42=vDist.y;
mWorldO._43=vDist.z;
// получаем матрицу поворота относительно оси
D3DXMATRIX Out;
D3DXMatrixIdentity( &Out );
D3DXMatrixRotationAxis( &Out, &vAxs, fRad );
// получаем повернутую матрицу, но не смещенную
D3DXMatrixMultiply( &mWorldO, &mWorldO, &Out ); // вращение вокруг центра координат
// прибавляем позицию, вокруг которой вроде как крутили - получаем итоговую матрицу
mWorldO._41 += vPos.x;
mWorldO._42 += vPos.y;
mWorldO._43 += vPos.z;
// передаем
*matWorld = mWorldO;
}
};

так вот беда в том что когда я применяю матрицу, например к кубу, то куб едет вперед, а вращается вокруг своей собственной оси, а мне надо так, чтобы повернули куб и он поехал в ту сторону, куды повернули. А он отказывается! Муд*лко!:wild::wallbash:

в чем трабла так и не понял.
мож кто подскажет способ решения проблемы. ну или на крайняк мона ссылки дать

плиз помогите:dontknow: :dontknow: :dontknow:

Genius 11.10.2008 17:03

Ответ: Преобразование координат в D3D
 
Могу только намикнуть где искать решение в твоем случае:)
Dreamotion3D...

mr.DIMAS 13.10.2008 18:04

Re: Преобразование координат в D3D
 
Не выход,. ну че кто-нибудь в состоянии помочь? или булка помирает? ау!


Часовой пояс GMT +4, время: 04:02.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot