Показать сообщение отдельно
Старый 25.12.2009, 15:20
enepx вне форума Посмотреть профиль Отправить личное сообщение для enepx Посетить домашнюю страницу enepx Найти все сообщения от enepx
  № 1  
Ответить с цитированием
enepx
 
Аватар для enepx

Регистрация: Aug 2006
Адрес: Мюнхен
Сообщений: 509
Отправить сообщение для enepx с помощью ICQ Отправить сообщение для enepx с помощью Yahoo Отправить сообщение для enepx с помощью Skype™
Question Вращение 3D-объекта, Five3D

Привет всем, с наступающим 2010 годом. Желаю побольше интересных проектов и побольше отдыхать!

Теперь, собственно, вопрос к 3D-математикам:
мне нужно сделать бесконечное вращение объекта, находящегося в позиции (0, 0, 0) вокруг себя в зависимости от положения курсора мыши. Примерно так:

(картинка кликабельна, переходит на SWF-ку с примером)

Я использую движок Five3D. Проблема в вычислении значений углов (rotationX, rotationY и rotationZ) у вращаемого объекта (тут - куба). Делаю так:
Код AS3:
	private function onFrame(event:Event):void {
		_body.rotationX +=  _xOffset;
		_body.rotationY += -_yOffset;
	}
Но у меня объект как бы проворачивается и получается, что каждые вторые ПИ (180 градусов) у меня крутит корректно, остальные - нет.
Подскажите какие тут колдовства, матрицы и т.д. нужно применить?

Суммируя вышеизложенное:
Дано: угол в плоскости экрана, на который нужно повернуть;
Требуется: найти значения rotationX, rotationY и rotationZ для вращаемгого объекта.

Спасибо.


Последний раз редактировалось enepx; 25.12.2009 в 15:22.