Показать сообщение отдельно
Старый 16.02.2013, 01:19   #1355
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

Хочу сделать вращение объекта мышкой как в Blender.
Для этого нужно из координат мышки вычислить рычаг за который будем крутить объект.
А чтобы вычислить этот рычаг нужно спроецировать курсор на сферу.
Есть идеи как это правильно сделать?

Сейчас так написал, но по-моему это не совсем правильно.
float tx = (Input.mousePosition.x-Screen.width/2)/Screen.width * 2;
float ty = (Input.mousePosition.y-Screen.height/2)/Screen.height * 2;
tx = Mathf.Clamp(tx, -1, 1);
ty = Mathf.Clamp(ty, -1, 1);
				
dir = new Vector3(tx, ty, 0);
dir.z = -Mathf.Clamp01(1-dir.magnitude);
dir.Normalize();
Т.е. если точка в самом правом углу дисплея, то рычаг будет справа на сфере. Рисунок немного неверный, нужно было обрезать синюю линию.
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 2305
Размер:	19.8 Кб
ID:	18786  
(Offline)
 
Ответить с цитированием