Я пытаюсь узнать угол (в градусах) между двумя 2D-векторами. Я знаю, что мне нужно использовать триггер, но я не очень хорошо с ним справляюсь. Вот что я пытаюсь решить (ось Y увеличивается вниз):
Сейчас пытаюсь использовать этот код, но он вообще не работает (по какой-то причине вычисляет случайные углы):
private float calcAngle(float x, float y, float x1, float y1)
{
float _angle = (float)Math.toDegrees(Math.atan2(Math.abs(x1-x), Math.abs(y1-y)));
Log.d("Angle","Angle: "+_angle+" x: "+x+" y: "+y+" x1: "+x1+" y1: "+y1);
return _angle;
}
Это мои результаты (они постоянны при обеспечении постоянного положения, но когда я меняю положение, угол меняется, и я не могу найти никакой связи между двумя углами):
Позиция 1: x: 100 y: 100 x1: 50 y1: 50 Угол: 45
Позиция 2: x: 92 y: 85 x1: 24 y1: 16 Угол: 44,58
Позиция 3: x: 44 y: 16 x1: 106 y1: 132 Угол: 28,12
Изменить: Спасибо всем, кто ответил и помог мне понять, что это неправильно! Извините, название и вопрос сбивают с толку.