Disons que j'ai x1, y1 et aussi x2, y2.
Comment puis-je trouver la distance entre eux? C'est une simple fonction mathématique, mais y a-t-il un extrait de cette ligne?
dist = sqrt( (x2 - x1)**2 + (y2 - y1)**2 )
Comme d'autres l'ont fait remarquer, vous pouvez également utiliser l'équivalent intégré math.hypot()
:
dist = math.hypot(x2 - x1, y2 - y1)
N'oublions pas math.hypot:
dist = math.hypot(x2-x1, y2-y1)
Voici hypot faisant partie d'un extrait permettant de 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),
]
# 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)
C'est une implémentation du théorème de Pythagore. Lien: http://en.wikipedia.org/wiki/Pythagorean_theorem