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

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

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

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 12.02.2006, 20:48   #1
Conan Fedr
Нуждающийся
 
Регистрация: 08.02.2006
Сообщений: 75
Написано 0 полезных сообщений
(для 0 пользователей)
Може ктонить сможен написать функцию для перевода кватерниона в обычный вектор . После прочтения статей по ним у меня постепенно срывает крышу . Всетаки зря какойто тип их в 18 веке придумал .

Прошу кто можут функцию под блитз написать для перевода кватерниона в вектор и функцию для обратной конвертации .
(Offline)
 
Ответить с цитированием
Старый 12.02.2006, 21:15   #2
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Jimona спроси
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 12.02.2006, 23:21   #3
jimon
 
Сообщений: n/a
Jimon game engine 0.61
отключоные программные модули
файл math.cpp
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);
}
для блица пока немногу написать (занят сильно)
 
Ответить с цитированием
Старый 13.02.2006, 00:31   #4
alex-mad
Модератор
 
Регистрация: 13.09.2005
Сообщений: 1,835
Написано 6 полезных сообщений
(для 10 пользователей)
эээ... объясните непосвящённому, что есть "кватерниона"?
(Offline)
 
Ответить с цитированием
Старый 13.02.2006, 01:34   #5
Conan Fedr
Нуждающийся
 
Регистрация: 08.02.2006
Сообщений: 75
Написано 0 полезных сообщений
(для 0 пользователей)
Кватерниона это ужасная хрень Точно немогу обьяснить Но это что-то типа четырех мерного вектора ( хз зачем ) .
(Offline)
 
Ответить с цитированием
Старый 13.02.2006, 01:44   #6
alex-mad
Модератор
 
Регистрация: 13.09.2005
Сообщений: 1,835
Написано 6 полезных сообщений
(для 10 пользователей)
гы... во бред!
и нафига он нужен, живя в 3-х мерном пространстве
(Offline)
 
Ответить с цитированием
Старый 13.02.2006, 01:45   #7
Conan Fedr
Нуждающийся
 
Регистрация: 08.02.2006
Сообщений: 75
Написано 0 полезных сообщений
(для 0 пользователей)
Спасибо большое jimon мне под блитз пока и ненадо всеровно то что я под блитзем написал нифига непашет . Я доделаю хоть свой cam есдитор под сями . Еще раз спасибо .
(Offline)
 
Ответить с цитированием
Старый 13.02.2006, 02:15   #8
Conan Fedr
Нуждающийся
 
Регистрация: 08.02.2006
Сообщений: 75
Написано 0 полезных сообщений
(для 0 пользователей)
Чему равна константа GRAD_PI ?
(Offline)
 
Ответить с цитированием
Старый 13.02.2006, 22:23   #9
jimon
 
Сообщений: n/a
const f64 irr::core::GRAD_PI = 180.0 / 3.1415926535897932384626433832795
квартерионы форева !

2 alex-mad :
сравни умножение вектора положение на полную матрицу поворота
и вектора положения на квартерион
увидиш разницу

и квартерион занимает 4 числа вместо того что матрица поворота по одной оси занимает 16 чисел

если всеравно непонятно - учи основы физики, и игровой геометрии
 
Ответить с цитированием
Старый 15.02.2006, 18:09   #10
Conan Fedr
Нуждающийся
 
Регистрация: 08.02.2006
Сообщений: 75
Написано 0 полезных сообщений
(для 0 пользователей)
jimon можеш чтонибудь конретное посоветовать почитать по этой системе координат в которой используется 4 оси . сорри если что нетак сказал . Вот я неврублюка это все перемнить ведь до пусим в OGL можно задавать вершину четырьмя координатами а я хз нафик четвертая нужна . Вот хочется разобарться. Ну и по ксатернионам чтонить для нубов , но помоему это все из одной тарелки . Заранее спасибо
(Offline)
 
Ответить с цитированием
Старый 15.02.2006, 18:28   #11
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
в ОГЛ координаты задаются так:
если задано 4 переменных x,y,z,w то реальные координаты получаются такие:
x/w,y/w,z/w
по умолчанию w=1.0 при задании координат 2-мя и 3-мя числами
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 15.02.2006, 18:43   #12
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Вот тока что нашел справку по кватернионам
quat3rot.pdf
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 15.02.2006, 18:49   #13
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
вот тут еще есть инфа:
http://allprogramming.jino-net.ru/ebooks/d.../book3/43.phtml
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 15.02.2006, 19:05   #14
Conan Fedr
Нуждающийся
 
Регистрация: 08.02.2006
Сообщений: 75
Написано 0 полезных сообщений
(для 0 пользователей)
Спасиба . Но вы видели сколько я в той мессаге опечаток сделал щя сам сижу и прусь
(Offline)
 
Ответить с цитированием
Старый 15.02.2006, 22:36   #15
jimon
 
Сообщений: n/a
читать все здесь
http://gamedev.ru/articles/?sect=3
думаю понятно будет
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оброзование мать его!!! ЛысыЙ_Чук-Иванчук Болтовня 35 03.11.2007 19:00
Анимация мать её.. vadya Blitz3D 3 30.06.2007 02:44


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


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