Disons que j'ai x1, y1 et aussi x2, y2.Comment trouver la distance entre deux points?
Comment puis-je trouver la distance entre eux? C'est une fonction mathématique simple, mais y a-t-il un extrait de ceci en ligne?
Disons que j'ai x1, y1 et aussi x2, y2.Comment trouver la distance entre deux points?
Comment puis-je trouver la distance entre eux? C'est une fonction mathématique simple, mais y a-t-il un extrait de ceci en ligne?
dist = sqrt((x2 - x1)**2 + (y2 - y1)**2)
Comme d'autres l'ont souligné, vous pouvez également utiliser l'équivalent intégré math.hypot()
:
dist = math.hypot(x2 - x1, y2 - y1)
C'est, en passant, la [formule de distance] (http://en.wikipedia.org/wiki/Distance#Geometry) –
vouliez-vous dire http://en.wikipedia.org/wiki/Euclidean_distance? –
Ce n'est pas comment faire le "pouvoir" en python? N'est-ce pas **? – TIMEX
Il est une implémentation du théorème de Pythagore. Lien: http://en.wikipedia.org/wiki/Pythagorean_theorem
N'oublions pas math.hypot:
dist = math.hypot(x2-x1, y2-y1)
est ici hypot dans le cadre d'un extrait pour calculer la longueur d'un chemin défini par une liste de x, y tuples:
from math import hypot
pts = [
(10,10),
(10,11),
(20,11),
(20,10),
(10,10),
]
ptdiff = lambda (p1,p2): (p1[0]-p2[0], p1[1]-p2[1])
diffs = map(ptdiff, zip(pts,pts[1:]))
path = sum(hypot(*d) for d in diffs)
print path
Python3 ne permet plus les tuples comme paramètre lambda, donc la fonction devient ceci: ptdiff = lambda p: (p [0] [0] -p [1] [0], p [0] [1] -p [1] [1]) diffs = map (ptdiff, zip (pts [: - 1], pts [1:])) chemin = somme (math.hypot (d1, d2) pour d1, d2 dans diffs) –
C'est ridicule. Avez-vous même * essayé * de chercher? –
Cela n'a pas fonctionné. Alors j'ai demandé ici. J'ai compris pourquoi. C'est parce que je l'ai fait^au lieu de ** – TIMEX
@Greg: Son bilan dit non. @TIMEX: La recherche n'a pas fonctionné? Sérieusement: http://www.google.com/search?q=python+distance+points –