2015-10-14 33 views
6

Ich habe die beiden Zeiger innerhalb ACTION_POINTER_DOWNWie erreiche ich die Entfernung zwischen zwei Punkten in Android?

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

Wie kann ich den Abstand zwischen diesen beiden Punkte? Gibt es eine Möglichkeit, es zu bekommen?

Ich möchte die Entfernung etwas Scrolling-Effekt machen. Mit der Entfernung kann ich es wie einen Skalierungsfaktor verwenden und meine Layouts ändern.

Ich hoffe, jemand kann mir sagen, wie man das macht!

+2

Sie könnten Pythagoras Theorie verwenden, um zu berechnen! –

Antwort

11

Es ist nicht nur Android ..

Wir von Trigonometrie Klasse erinnern, dass der Abstand zwischen zwei Punkten berechnet werden kann als mit Pythagoras here demonstriert

Aber im Grunde in Code, was Sie wollen, ist wie folgt:

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

Wo d Abstand zwischen zwei Punkten

+0

Ich bekomme eine Fehlermeldung ... sqrt (double) kann nicht auf sqrt (double, double) angewendet werden –

+1

Sorry, es gab einen Tippfehler im Code, ich sollte die beiden Quadrate summieren, aber versehentlich ein Komma hinzugefügt. –

+1

Ein kleiner Operator macht den Unterschied! Danke für deine Lösung !! –

1

Das Finden der Entfernung zwischen 2 Punkten ist nicht android spezifisch:

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)); 
Verwandte Themen