Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вычисление угла по тачу на окружности (http://www.flasher.ru/forum/showthread.php?t=212616)

mihael_p 26.03.2016 13:10

Вычисление угла по тачу на окружности
 
Вложений: 1
Добрый день!

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

Вложение 32165

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

Код 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.

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

Tails 26.03.2016 13:49

Код 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);


i.o. 26.03.2016 14:12

Код 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);


mihael_p 26.03.2016 15:37

Ребята, спасибо огромное! То, что нужно! ))


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

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