Как мне найти расстояние между двумя точками?
Допустим, у меня есть x1, y1, а также x2, y2.
Как я могу найти расстояние между ними? Это простая математическая функция, но есть ли фрагмент этого онлайн?
3 ответа
Решение
dist = sqrt( (x2 - x1)**2 + (y2 - y1)**2 )
Как уже отмечали другие, вы также можете использовать эквивалентный встроенный math.hypot()
:
dist = math.hypot(x2 - x1, y2 - y1)
Давайте не будем забывать math.hypot:
dist = math.hypot(x2-x1, y2-y1)
Вот гипотеза как часть фрагмента для вычисления длины пути, определенного списком x,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
Это реализация теоремы Пифагора. Ссылка: http://en.wikipedia.org/wiki/Pythagorean_theorem