Вычислить угол точки касания и повернуть ее в Android

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

Сценарий: Я рисую на SurfaceView круглое изображение. Пользователь касается точки на границе изображения и начинает тащить его по кругу. Мне нужно повернуть круглое изображение в соответствии с движением пользователя. У меня есть две важные части информации: координаты центра изображения X,Y и координаты точек касания.

enter image description here

Как вы можете видеть на изображении, пользователь коснулся точки, согласно моему рисунку угол точки касания должен быть около 40. Я не могу правильно рассчитать его.

Я пытался использовать эту формулу:

angle = Math.atan2(touchedY - centerY, touchedX - centerX) * 180 / Math.PI 

Я не могу понять, как я должен вычислять угол, в том виде, в котором он есть сейчас, он не работает правильно и значения не очень хорошие. Например, в случае с изображением, угол рассчитывается как -50.

Спасибо за ваше время, любая информация будет принята с радостью.

LE: На самом деле я допустил ошибку, как указано ниже. Круг должен выглядеть так:

enter image description here

8
задан Alin 28 October 2011 в 08:50
поделиться