undermuz
@undermuz
Full-Stack Developer

Как найти угол между точками на «почти единичной окружности»?

9e7994276be94c53b7cc3fea23bc3198.png

Есть пространство 500х500, с центром O(250, 250)
Есть точка А(112,392)

Длина AO = 198

Как найти угол a ?

Такая формула возвращает всегда угол от 0 до 90:

class Vector
{
    dX()
    {
        return Math.abs( this.points[1].x - this.points[0].x );
    }
    dY()
    {
        return Math.abs( this.points[1].y - this.points[0].y );
    }
    getAngle()
    {
         var Anlge = Math.atan2( this.dY(), this.dX() ) / Math.PI * 180;

         return (Anlge < 0) ? Anlge + 360 : Anlge;
     }
}


Необходимо, чтобы функция возвращала угол от 0 до 360 в какой бы четверти не была точка А.
Тригонометрию прогуливал в школе, увы...
  • Вопрос задан
  • 548 просмотров
Решения вопроса 1
undermuz
@undermuz Автор вопроса
Full-Stack Developer
Нашел проблему. Если кому-то понадобится:
class Vector
{
    dX()
    {
        return this.points[1].x - this.points[0].x;
    }
    dY()
    {
        return this.points[1].y - this.points[0].y;
    }
    getAngle()
    {
         var Anlge = Math.atan2( this.dY(), this.dX() ) / Math.PI * 180;

         return (Anlge < 0) ? Anlge + 360 : Anlge;
     }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
keslo
@keslo
Тут как бы так:
Угол а = 360 - 90 - atan(|(250-112)/(250-392)|)
Отсюда уже можно скрипт накидывать :-)

Сори, с телефона пишу. Если актуально будет, до напишу к обеду код
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы