Показать сообщение отдельно
Старый 26.07.2010, 01:00   #31
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

Цитата:
Скриншот не могу прикрепить, форум режет урлы (
добавьте нижние пробелы, и все примет.
Цитата:
Видимо это как-то связано с вашей проблемой.
это не только моя проблема, это проблема всех ГО, которые стоят не прямо.


Код:
void UnpackRotation(ulong data, ref float[] rotation)
{
	double v1 = 0.000000476837158203125;
	double v2 = 0.000000953674316406250;

	rotation[0] = (float)( (data >> 42)              * v1);
	rotation[1] = (float)(((data << 22 >> 32) >> 11) * v2);
	rotation[2] = (float)( (data << 43 >> 43)        * v2);

	float temp = (float)(Math.Pow(rotation[2], 2) + Math.Pow(rotation[1], 2) + Math.Pow(rotation[0], 2));

	if (Math.Abs(temp - 1.0f) >= v2)
		rotation[3] = (float)(Math.Sqrt(1.0f - temp));
	else
		rotation[3] = 0.0f;
}
но ожидаемого результата так и не получилось, во первых, насколько я понял значение ротации должно быть в диапазоне -1 до 1, а тут немного не то.

я еще попробую помучить это все.
__________________

Последний раз редактировалось Konctantin; 26.07.2010 в 01:05.
Konctantin вне форума   Ответить с цитированием