2015-10-14 26 views
6

Ho impostato i due puntatori all'interno ACTION_POINTER_DOWNCome ottenere la distanza tra due punti in Android?

point1.set(event.getX(0),event.getY(0)); 
point2.set(event.getX(1),event.getY(1)); 

Come posso ottenere la distanza tra questi due punti? C'è un modo per ottenerlo?

Voglio che la distanza crei un effetto di scorrimento. Con la distanza, posso usarlo come un fattore di scala e ridimensionare i miei layout.

Spero che qualcuno possa dirmi come farlo!

+2

È possibile utilizzare la teoria di Pitagora per calcolare! –

risposta

11

La sua non solo Android ..

Ricordiamo dalla classe trigonometria quella distanza tra due punti può essere calcolata utilizzando Teorema di Pitagora come dimostrato here

Ma nel codice in fondo ciò che si vuole è la seguente:

double d = Math.sqrt(Math.pow(event.getX(1) - event.getX(0), 2) + Math.pow(event.getY(1) - event.getY(0), 2)); 

Dove d è la distanza tra due punti

+0

Viene visualizzato un errore ... sqrt (double) non può essere applicato a sqrt (double, double) –

+1

Spiacente, c'era un errore di battitura nel codice, dovevo sommare i due quadrati, ma ho accidentalmente aggiunto una virgola. –

+1

Un piccolo operatore fa la differenza! Grazie per la soluzione !! –

1

La distanza tra 2 punti non è specifica per Android:

double x1 = event.getX(1); 
    double y1 = event.getY(1); 
    double x2 = event.getX(0); 
    double y2 = event.getY(0); 
    double x = Math.sqrt(Math.pow(x2 - x1, 2) - Math.pow(y2 - y1, 2));