Digamos que tengo x1, y1 y también x2, y2.¿Cómo encuentro la distancia entre dos puntos?
¿Cómo puedo encontrar la distancia entre ellos? Es una función matemática simple, pero ¿hay un fragmento de esto en línea?
Digamos que tengo x1, y1 y también x2, y2.¿Cómo encuentro la distancia entre dos puntos?
¿Cómo puedo encontrar la distancia entre ellos? Es una función matemática simple, pero ¿hay un fragmento de esto en línea?
dist = sqrt((x2 - x1)**2 + (y2 - y1)**2)
Como otros han señalado, también puede utilizar el equivalente incorporada math.hypot()
:
dist = math.hypot(x2 - x1, y2 - y1)
Esto es, por cierto, la [fórmula de distancia] (http://en.wikipedia.org/wiki/Distance#Geometry) –
¿te refieres a http://en.wikipedia.org/wiki/Euclidean_distance? –
¿Esta no es la forma de hacer el "poder" en python? ¿No es así? – TIMEX
Es una implementación del teorema de Pitágoras. Enlace: http://en.wikipedia.org/wiki/Pythagorean_theorem
No olvidemos math.hypot:
dist = math.hypot(x2-x1, y2-y1)
Aquí está hypot como parte de un fragmento para calcular la longitud de una trayectoria definida por una lista de x, tuplas y:
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 ya no permite tuplas como parámetro lambda, por lo que la función se convierte en esto: ptdiff = lambda p: (p [0] [0] -p [1] [0], p [0] [1] -p [1] [1]) diffs = map (ptdiff, zip (pts [: - 1], pts [1:])) ruta = suma (math.hypot (d1, d2) para d1, d2 en diffs) –
Esto es ridículo. ¿Incluso * intentaste * buscar? –
No funcionó. Así que pregunté aquí. Descubrí por qué. Es porque lo hice^en lugar de ** – TIMEX
@Greg: su historial dice que no. @TIMEX: ¿La búsqueda no funcionó? En serio: http://www.google.com/search?q=python+distance+points –