![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2006
Сообщений: 453
|
Для поворотов пользуюсь TweenLite от greensock, если надо сделать поворот в ближайшую сторону тесть если у меня например надо повернуть от 10 градусов до 350 градусов стандартно надо в таком случаи менять 350 в -10. Какой функцией это можно сделать чтобы правильно работало?
|
|
|||||
|
Регистрация: Nov 2007
Сообщений: 55
|
не очень понял вопрос
если надо просто угол преобразовать - то |
|
|||||
|
Регистрация: Sep 2006
Сообщений: 453
|
угол преобразовать, не надо, надо понять, что ближе минусовое или плюсовое значение.
|
|
|||||
|
https://github.com/ramshteks/as3bicy...m/Angle.as#L23
вот метод(23 строчка), который дает минимальный угод между двумя заданными.(Знак означает направление). Писалось как раз под сходную с вашей задачу Если это поможет конечно |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Вроде как плагин же был у гринсока (или сразу встроеная функция) в твинмаксе, shortRotation, если не ошибаюсь. Если вам не принципиально, что использовать, TweenLite или TweenMax, конечно.
ramshteks, в вашем коде можно Math.PI / 180 вынести в отдельное поле ![]()
__________________
hauts.ru Последний раз редактировалось Hauts; 04.06.2012 в 23:12. |
|
|||||
|
Цитата:
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Несчастный Боб — горе в семье.
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 05.06.2012 в 01:55. |
|
|||||
|
Тогда наверное вот так для твинера лучше:
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Для твинера — да; но, конечно, не стóит включать это в данную функцию))) дабы не испытать удивление. Либо функция должна быть названа и продокументирована соответственно, как преобразующая значение to.
__________________
Reality.getBounds(this); |
|
|||||
|
Цитата:
public static function minAngle(from:Number, to:Number, abs:Boolean = true):Number { to = to % 360; from = from % 360; if(to < 0) to += 360; if (from < 0) from += 360; var cw:Number = to - from; if (cw < 0) cw += 360; var ccw:Number = from - to; if (ccw < 0) ccw += 360; var ang:Number; if (abs) ang = from + (cw < ccw ? cw : - ccw); else ang = (cw < ccw ? cw : - ccw); return ang; } |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|