Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Преобразование из одной системы координат в другую.

991
22 апреля 2005 года
Zenhipster
157 / / 14.01.2005
Как перевести 3D объект из одной системы координат в другую? Обе системы координат описываются четыремя векторами:
D3DXVECTOR3 CentralPoint,
DirectionX,
DirectionY,
DirectionZ;

, где:
CentralPoint -- Центр системы координат
DirectionX -- Направляющий ед-й вектор оси X
DirectionY -- Направляющий ед-й вектор оси Y
DirectionZ -- Направляющий ед-й вектор оси Z

(Т.е. координатные оси не обязательно взаимно-перпендикулярны).
991
26 апреля 2005 года
Zenhipster
157 / / 14.01.2005
Оказалось все просто:

void csc3Dobj::_TranslateThis2Other(tCoordinateSystem &CSystem)
{
//Матрица совмещения локальной СК с глобальной СК:
objMatrTT = D3DXMATRIX( CSystem.DirectionX.x, CSystem.DirectionY.x, CSystem.DirectionZ.x, 0,
CSystem.DirectionX.y, CSystem.DirectionY.y, CSystem.DirectionZ.y, 0,
CSystem.DirectionX.z, CSystem.DirectionY.z, CSystem.DirectionZ.z, 0,
-D3DXVec3Dot(&(CSystem.DirectionX), &CSystem.CentralPoint),
-D3DXVec3Dot(&(CSystem.DirectionY), &CSystem.CentralPoint),
-D3DXVec3Dot(&(CSystem.DirectionZ), &CSystem.CentralPoint),
1);

float fDet;
objMatr = objMatrTT * objMatr;
D3DXMatrixInverse(&objMatrTT, &fDet, &objMatrTT);
objMatr *= objMatrTT;

};
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог