2009-12-19 17 views
8

Znam punkty początkowe i końcowe w segmencie linii. W tym przykładzie powiedz, że segment linii ma odległość 5. Teraz chcę znać punkt, który ma odległość trzech od punktu końcowego. Każdy pomysł, jak to zrobić z matematyki?Wyszukiwanie punktu na linii

punkcie startowym (0,0) Punkt końcowy (0,5)

Punkt Chcę znaleźć (0,2)

Odpowiedz

22

Jeśli punkty są (x1, y1) i (x2, y2) i chcesz znaleźć punkt (x3, y3) czyli n jednostki od punktu 2:

d = sqrt((x2-x1)^2 + (y2 - y1)^2) #distance 
r = n/d #segment ratio 

x3 = r * x2 + (1 - r) * x1 #find point that divides the segment 
y3 = r * y2 + (1 - r) * y1 #into the ratio (1-r):r 
+0

+1 za poświęcenie czasu, aby odpowiedzieć – Patrick

+1

+1 - w końcu wiele godzin starając się uzyskać tej pracy w końcu pomyślałem: „Hej, dlaczego nie sprawdzić WIĘC." 30 sekund później mam w pełni działające rozwiązanie. Dla moich celów zamieniłem xiy i y w obliczeniach x3, y3, tak aby odzwierciedlały odległość od punktu początkowego. – Peter