Tengo una pestaña de dibujo de lienzo y quiero que lineWidth se base en la distancia entre las dos últimas actualizaciones de coordenadas de mousemove. Yo mismo haré la traducción de la distancia al ancho, solo necesito saber cómo obtener la distancia entre esos puntos (ya tengo las coordenadas de esos puntos).
javascript
canvas
Anagmate
fuente
fuente


x1 - x2, y1 - y2ox2 - x1, y2 - y1?7 - 5 = 2o5 - 7 = -2no importará.-2 * -2 = 42 * 2 = 4Tenga en cuenta que
Math.hypotes parte del estándar ES2015. También hay un buen polyfill en el documento MDN para esta función.Así que conseguir la distancia se vuelve tan fácil como
Math.hypot(x2-x1, y2-y1).fuente
http://en.wikipedia.org/wiki/Euclidean_distance
Si tiene las coordenadas, use la fórmula para calcular la distancia:
Si su plataforma es compatible con el
**operador , puede usar eso:fuente
¡La distancia entre dos coordenadas xey! x1 e y1 es el primer punto / posición, x2 e y2 es el segundo punto / posición.
fuente
Math.abslugar dediff.diffya que elevar un número al cuadrado siempre dará como resultado un número positivo. Six1 - y1es negativo,(x1 - y1) ^ 2sigue siendo positivo.Tiendo a usar mucho este cálculo en las cosas que hago, así que me gusta agregarlo al objeto Math:
Actualizar:
este enfoque es especialmente feliz cuando terminas en situaciones similares a esto (a menudo lo hago):
esa cosa horrible se vuelve mucho más manejable:
fuente