90 votes

Comment trouver la distance entre deux points ?

Disons que j'ai x1, y1 et aussi x2, y2.

Comment puis-je trouver la distance entre eux? C'est une fonction mathématique simple, mais existe-t-il un extrait de cela en ligne ?

148voto

Mitch Wheat Points 169614
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)

72voto

Paul McGuire Points 24790

N'oublions pas math.hypot :

 dist = math.hypot(x2-x1, y2-y1)

Voici une hypothèse dans le cadre d'un extrait pour calculer la longueur d'un chemin défini par une liste de tuples (x, y):

 from math import hypot

pts = [
    (10,10),
    (10,11),
    (20,11),
    (20,10),
    (10,10),
    ]

# Py2 syntax - no longer allowed in Py3
# ptdiff = lambda (p1,p2): (p1[0]-p2[0], p1[1]-p2[1])
ptdiff = lambda p1, p2: (p1[0]-p2[0], p1[1]-p2[1])

diffs = (ptdiff(p1, p2) for p1, p2 in zip (pts, pts[1:]))
path = sum(hypot(*d) for d in  diffs)
print(path)

18voto

Maciej Ziarko Points 3236

entrez la description de l'image ici C'est une implémentation du théorème de Pythagore. Lien : http://en.wikipedia.org/wiki/Pythagorean_theorem

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X