У меня есть две точки (позиции касания), и я хочу знать угол между ними относительно центра изображения.Подписанный угол между двумя точками
После прибегая к помощи на некоторое время, я нашел Law of cosines.
Так что я придумал следующий код:
final float x = e.getX() - v.getWidth()/2;
final float y = e.getY() - v.getHeight()/2;
final float a = PointF.length(x, y);
final float b = PointF.length(x_, y_);
final double c = Math.sqrt(Math.pow(x - x_, 2) + Math.pow(y - y_, 2));
final double alpha = Math.toDegrees(Math.acos((Math.pow(a , 2) + Math.pow(b, 2) - Math.pow(c, 2))/(2 * a * b)));
Это похоже на работу. Но у него есть одна большая проблема. Угол всегда положительный. Но мне нужно знать движение по часовой стрелке и против часовой стрелки. Таким образом, из пункта 1 в пункт 2 на иллюстрации будет +45, но от 2 до 1 будет -45. Любая идея, как это сделать?