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

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

Вернуться   forum.boolean.name > Общие темы > Болтовня

Болтовня Разговоры на любые темы (думайте, о чем пишите)

Ответ
 
Опции темы
Старый 02.07.2007, 15:28   #1
DarkKnight
Знающий
 
Регистрация: 09.11.2006
Сообщений: 256
Написано 2 полезных сообщений
(для 2 пользователей)
Вопрос 3д двиг

Доброго времени суток=)не знаете БЕСПЛАТНЫЙ ДВИГ где повороты осуществляются при помощи КВАТЕРИОНОВ,а не УГЛОВ ЭЙЛЕРА.А еще лучше если и так и так поворачивать можно.встроеные и не встроеные функции перевода кватерионов в эйлеры и обратно - это не то,нужно чтоб двиг держал нормлаьно повороты на Qaut'ах=)

З.Ы. когда постил ступил,этой теме наверно место в "поиск файлов" *SORRY*
(Offline)
 
Ответить с цитированием
Старый 02.07.2007, 16:09   #2
jimon
 
Сообщений: n/a
Re: 3д двиг

DarkKnight
а какая разница ? все равно в итоге все переводится в матрицы ...
так что программного перевода не избежать
 
Ответить с цитированием
Старый 02.07.2007, 16:26   #3
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: 3д двиг

2Д\3Д?
Мона поподробнее о квартерионах и углах уйлена, это 360 и -180 до 180?
Вообще совсем просто можно написать конвертирующие, и их использовать, и для плавных поворотов и много для чего. Например в БМаксе вообще нету работы с углами, а я написал себе функции для работы с 360 градусовыми углами и сижу "радуюсь" =)
(Offline)
 
Ответить с цитированием
Старый 02.07.2007, 17:42   #4
jimon
 
Сообщений: n/a
Re: 3д двиг

MoKa почитай
http://gamedev.ru/articles/?id=30129
http://www.gamedev.ru/users/wat/articles/quaternions
http://ru.wikipedia.org/wiki/Углы_Эйлера
 
Ответить с цитированием
Старый 03.07.2007, 02:02   #5
DarkKnight
Знающий
 
Регистрация: 09.11.2006
Сообщений: 256
Написано 2 полезных сообщений
(для 2 пользователей)
Re: 3д двиг

в ирре например у меня перевести не получилось..=((
у меня есть угол в кватерионе,мне надо повернуть на этот угол мешь,а поворачивается она по эйлерам..=(( и перевод чето не получился=(
(Offline)
 
Ответить с цитированием
Старый 03.07.2007, 07:01   #6
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: 3д двиг

И зачем тебе, простите, такой гемор?
(Offline)
 
Ответить с цитированием
Старый 03.07.2007, 11:43   #7
jimon
 
Сообщений: n/a
Re: 3д двиг

DarkKnight
вот ето работает у меня по крайней мере
переводит квартерион из ODE в irrlicht

вот ето просто понять к чему все :
GRAD_PI = 180.0 / 3.1415926535897932384626433832795
GRAD_PI2 = 3.1415926535897932384626433832795 / 180.0
typedef float dReal;
typedef dReal dQuaternion[4];

void Quaternion_To_Euler(const dQuaternion quaternion,vector3df &euler)
{
	dReal w,x,y,z;
	w=quaternion[0];
	x=quaternion[1];
	y=quaternion[2];
	z=quaternion[3];
	double sqw = w*w;
	double sqx = x*x;
	double sqy = y*y;
	double sqz = z*z;
	euler.Z = (float) (atan2(2.0 * (x*y + z*w),(sqx - sqy - sqz + sqw))*GRAD_PI);
	euler.X = (float) (atan2(2.0 * (y*z + x*w),(-sqx - sqy + sqz + sqw))*GRAD_PI);
	euler.Y = (float) (asin(-2.0 * (x*z - y*w))*GRAD_PI);
}
void Euler_To_Quaternion(const vector3df &euler, dQuaternion quaternion)
{
	double _heading=euler.Z*GRAD_PI2/2.0;
	double _attitude=euler.Y*GRAD_PI2/2.0;
	double _bank=euler.X*GRAD_PI2/2.0;
	double c1 = cos(_heading);
	double s1 = sin(_heading);
	double c2 = cos(_attitude);
	double s2 = sin(_attitude);
	double c3 = cos(_bank);
	double s3 = sin(_bank);
	double c1c2 = c1*c2;
	double s1s2 = s1*s2;
	quaternion[0]=(dReal) (c1c2*c3 + s1s2*s3);
	quaternion[1]=(dReal) (c1c2*s3 - s1s2*c3);
	quaternion[2]=(dReal) (c1*s2*c3 + s1*c2*s3);
	quaternion[3]=(dReal) (s1*c2*c3 - c1*s2*s3);
}
в принципе ничего нет не возможного
и такой переход прийдется делать ... :/

ps. потом просто перепиши квартерион ode на ирлихтовский ...
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как толкать предметы (коллизии или физ.двиг) ? gabriel 3D-программирование 9 19.10.2009 14:28
Какой двиг все ж лучше... Данил 3D-программирование 56 11.03.2009 21:11
Звуковой двиг? ЛысыЙ_Чук-Иванчук Библиотеки 19 27.12.2007 13:53


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


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