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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.03.2016, 13:10
mihael_p вне форума Посмотреть профиль Отправить личное сообщение для mihael_p Посетить домашнюю страницу mihael_p Найти все сообщения от mihael_p
  № 1  
Ответить с цитированием
mihael_p

Регистрация: Jul 2011
Сообщений: 249
Отправить сообщение для mihael_p с помощью Skype™
По умолчанию Вычисление угла по тачу на окружности

Добрый день!

Может задачи и простая, но не для меня, с тригонометрией всегда туго было.
Это должен быть такой круглый прогресс бар для плеера.
Есть круг, нужно вычислить угол от 0 до точки, куда пришелся тач / клик.

Название: angle.png
Просмотров: 348

Размер: 7.3 Кб

Нашел такой пример:

Код AS3:
var degr:Number = (getAngle(centerX, centerY, touchX, touchY) * 180 / Math.PI);
 
private function getAngle (x1:Number, y1:Number, x2:Number, y2:Number):Number
{
	var dx:Number = x2 - x1;
	var dy:Number = y2 - y1;
	return Math.atan2(dy,dx);
}
но он выдает на одной стороне от 0 до 180, на другой от -180 до 0. А нужно от 0 до 360.

Поделитесь, пожалуйста, мыслями. Может кто сталкивался с таким, может у кого есть решение готовое, буду благодарен)
__________________
Не стыдно спросить, стыдно не знать !

Старый 26.03.2016, 13:49
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 2  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Код AS3:
const dx:Number			= x2 - x1;
const dy:Number			= y2 - y1;
 
var rad:Number			= Math.atan2(dx, dy)
if (rad < 0)
	rad					= Math.PI + (Math.PI - Math.abs(rad));
 
var rotation:Number		= rad * 180 / Math.PI;
 
trace(rotation);
__________________
Дети не должны знать о своих родителях

Старый 26.03.2016, 14:12
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 3  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Код AS3:
var dx:Number = x2 - x1;
var dy:Number = y2 - y1;
var radians:Number = Math.atan2(dy, dx);
var degrees:Number = (radians * 180 / Math.PI + 360) % 360;
 
trace(degrees);

Старый 26.03.2016, 15:37
mihael_p вне форума Посмотреть профиль Отправить личное сообщение для mihael_p Посетить домашнюю страницу mihael_p Найти все сообщения от mihael_p
  № 4  
Ответить с цитированием
mihael_p

Регистрация: Jul 2011
Сообщений: 249
Отправить сообщение для mihael_p с помощью Skype™
Ребята, спасибо огромное! То, что нужно! ))
__________________
Не стыдно спросить, стыдно не знать !

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

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

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


 


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


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