Hoe vind ik de afstand tussen twee punten?

Stel dat ik x1, y1 en ook x2, y2 heb.

Hoe kan ik de afstand ertussen vinden?
Het is een eenvoudige wiskundige functie, maar is er een fragment hiervan online?


Antwoord 1, autoriteit 100%

dist = sqrt( (x2 - x1)**2 + (y2 - y1)**2 )

Zoals anderen al hebben opgemerkt, kunt u ook de equivalente ingebouwde math.hypot():

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

Antwoord 2, autoriteit 57%

Laten we math.hypot niet vergeten:

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

Hier is een hypot als onderdeel van een fragment om de lengte te berekenen van een pad gedefinieerd door een lijst met (x, y) tupels:

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)

Antwoord 3, autoriteit 15%


Het is een implementatie van de stelling van Pythagoras. Link: http://en.wikipedia.org/wiki/Pythagorean_theorem

Other episodes