У меня есть вкладка для рисования холста, и я хочу, чтобы lineWidth основывалась на расстоянии между двумя последними обновлениями координат перемещения мыши. Я сам сделаю перевод расстояния в ширину, мне просто нужно знать, как получить расстояние между этими точками (у меня уже есть координаты этих точек).
javascript
canvas
Анагмат
источник
источник
x1 - x2, y1 - y2
илиx2 - x1, y2 - y1
?7 - 5 = 2
или5 - 7 = -2
неважно.-2 * -2 = 4
2 * 2 = 4
Обратите внимание, что
Math.hypot
это часть стандарта ES2015. Для этой функции в документе MDN также есть хороший полифил .Так что преодолеть расстояние становится проще простого
Math.hypot(x2-x1, y2-y1)
.источник
http://en.wikipedia.org/wiki/Euclidean_distance
Если у вас есть координаты, используйте формулу для расчета расстояния:
Если ваша платформа поддерживает
**
оператора , вы можете использовать его:источник
Расстояние между двумя координатами x и y! x1 и y1 - первая точка / позиция, x2 и y2 - вторая точка / позиция!
источник
Math.abs
вместоdiff
.diff
квадрат, так как всегда будет положительное число. Еслиx1 - y1
отрицательно, то(x1 - y1) ^ 2
еще положительно.Я часто использую этот расчет в своих делах, поэтому мне нравится добавлять его в объект Math:
Обновить:
этот подход особенно хорош, когда вы попадаете в ситуации, похожие на это (я часто так и поступаю):
эта ужасная вещь становится гораздо более управляемой:
источник