2015-10-14 13 views
6

ustawić dwa wskaźniki wewnątrz ACTION_POINTER_DOWNJak uzyskać odległość między dwoma punktami w systemie Android?

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

Jak mogę uzyskać dystans między tym dwoma punktami? Czy jest jakiś sposób, aby to zdobyć?

Chcę, aby odległość powodowała efekt przewijania. Przy tej odległości mogę używać go jak współczynnika skalowania i zmieniać rozmiar układów.

Mam nadzieję, że ktoś może mi powiedzieć, jak to zrobić!

+2

Możesz użyć teorii Pitagorasa do obliczenia! –

Odpowiedz

11

To nie tylko Android ..

Pamiętamy z klasy trygonometryczne, że odległość między dwoma punktami można obliczyć za pomocą twierdzenia Pitagorasa, jak wykazano here

Ale w kodzie w zasadzie to, co chcesz, co następuje:

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

gdzie d oznacza odległość pomiędzy dwoma punktami

+0

Wystąpił błąd ... sqrt (double) nie może być zastosowany do sqrt (double, double) –

+1

Niestety, wystąpił błąd w kodzie, miałem zsumować dwa kwadraty, ale przypadkowo dodano przecinek. –

+1

Mały operator robi różnicę! Dziękuję za rozwiązanie !! –

1

Znajdowanie odległości między 2 punktami nie jest specyficzne dla Androida:

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)); 
Powiązane problemy