atan2(y, x)
ha quella discontinuità a 180 ° dove passa a -180 ° ..0 ° andando in senso orario.
Come faccio a mappare l'intervallo di valori a 0 ° ..360 °?
ecco il mio codice:
CGSize deltaPoint = CGSizeMake(endPoint.x - startPoint.x, endPoint.y - startPoint.y);
float swipeBearing = atan2f(deltaPoint.height, deltaPoint.width);
Sto calcolando la direzione di un evento di tocco di scorrimento dato startPoint
e endPoint
, entrambe le strutture del punto XY. Il codice è per l'iPhone, ma qualsiasi lingua che supporti atan2f()
lo farà.