Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 06.10.2008, 16:15   #1
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Печаль Преобразование координат в D3D

Т.к я щас пишу свой графический движок, а опыта работы с D3D у меня маловато то ессесно возникла глупая(а мож и нет )проблема преобразования координат . Знач юзаю я функция 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;
}
};

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

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

плиз помогите
__________________

(Offline)
 
Ответить с цитированием
Старый 11.10.2008, 17:03   #2
Genius
Знающий
 
Аватар для Genius
 
Регистрация: 02.11.2007
Сообщений: 255
Написано 27 полезных сообщений
(для 43 пользователей)
Ответ: Преобразование координат в D3D

Могу только намикнуть где искать решение в твоем случае
Dreamotion3D...
(Offline)
 
Ответить с цитированием
Старый 13.10.2008, 18:04   #3
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Re: Преобразование координат в D3D

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

(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование экранных координат клика мыши в мировые Aceton 3D-программирование 6 01.04.2009 01:46
ПРЕОБРАЗОВАНИЕ TahirBySky Основной форум 9 22.03.2009 13:06
FFT - быстрое преобразование Фурье. oleeg Болтовня 8 08.10.2008 20:57
вычисление UV координат Платон Разработка LIB 2 26.01.2006 22:17


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com