Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.07.2010, 16:04
$mival вне форума Посмотреть профиль Отправить личное сообщение для $mival Найти все сообщения от $mival
  № 1  
Ответить с цитированием
$mival
 
Аватар для $mival

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
По умолчанию угол драга (drag)

нужно определить угол по которому драгнул юзер, например относительно горизонтали

то есть если ровно вправо - угол ноль,
влево - 180 и тд

есть вот такая формула
Код:
a = arctg[(y2 - y1)/(x2 - x1)] - arctg[(y4 - y3)/(x4 - x3)]
где а - нужный нам угол (в радианах?)
х1, у1 ... координаты соответствующих точек
точки 3 и 4 это координаты условного горизонтального отрезка от которого считаем угол

Код AS3:
private function getDirectionByPoints(p0:Point, p1:Point):Number
{			
	var angle:Number = 0;
 
        angle = Math.atan( (p1.y - p0.y) / (p1.x - p0.x) );
 
	return angle * 180 / Math.PI;
}
собсна второй арктангенс при вычитании убивается, так как у нас считается относительно горизонтального отрезка, а у него у обоих точек одинаковые игрики, соответственно при делении - ноль, арктангенс нуля - ноль.

p0 у нас запоминается при нажатии на stage
p1 соответственно при отпускании кнопки

не пойму что я сделал не так, по идее должно выдавать в диапазоне от нуля до 180 градусов, но как то больше 90 не получается

что не так?
__________________
smival.com

Старый 25.07.2010, 16:23
hartman вне форума Посмотреть профиль Отправить личное сообщение для hartman Найти все сообщения от hartman
  № 2  
Ответить с цитированием
hartman

Регистрация: Jul 2010
Сообщений: 110
Посмотрите на область значений арктангенса, все станет понятно. http://ru.wikipedia.org/wiki/Арксеканс

Старый 25.07.2010, 17:16
rainbowrussia вне форума Посмотреть профиль Отправить личное сообщение для rainbowrussia Найти все сообщения от rainbowrussia
  № 3  
Ответить с цитированием
rainbowrussia
 
Аватар для rainbowrussia

Регистрация: Feb 2008
Сообщений: 560
Для таких целей есть функци atan2(y:Number, x:Number), которая определяет угол по двум координатам смещения. Во вложении пример использования.
Вложения
Тип файла: rar move.rar (307.0 Кб, 47 просмотров)

Старый 25.07.2010, 19:27
$mival вне форума Посмотреть профиль Отправить личное сообщение для $mival Найти все сообщения от $mival
  № 4  
Ответить с цитированием
$mival
 
Аватар для $mival

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
Цитата:
Сообщение от hartman Посмотреть сообщение
Посмотрите на область значений арктангенса, все станет понятно. http://ru.wikipedia.org/wiki/Арксеканс
ну да, школьный курс

Цитата:
Сообщение от rainbowrussia Посмотреть сообщение
Для таких целей есть функци atan2(y:Number, x:Number), которая определяет угол по двум координатам смещения. Во вложении пример использования.
спасибо! пользуюсь
__________________
smival.com

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:12.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.