atan2(y, x)
tiene esa discontinuidad en 180 ° donde cambia a -180 ° ..0 ° en sentido horario.
¿Cómo mapeo el rango de valores a 0 ° ..360 °?
aquí está mi código:
CGSize deltaPoint = CGSizeMake(endPoint.x - startPoint.x, endPoint.y - startPoint.y);
float swipeBearing = atan2f(deltaPoint.height, deltaPoint.width);
Estoy calculando la dirección de un evento táctil de deslizamiento dado el startPoint
y endPoint
, ambas estructuras de puntos XY. El código es para iPhone, pero cualquier idioma que lo admita atan2f()
servirá.