Eu tenho a guia de desenho da tela e quero que a largura de linha seja baseada na distância entre as duas últimas atualizações de coordenadas do mousemove. Eu mesmo farei a translação da distância para a largura, só preciso saber como obter a distância entre esses pontos (já tenho as coordenadas desses pontos).
javascript
canvas
Anagmato
fonte
fonte
x1 - x2, y1 - y2
oux2 - x1, y2 - y1
?7 - 5 = 2
ou5 - 7 = -2
não, importa.-2 * -2 = 4
2 * 2 = 4
Note-se que
Math.hypot
é parte do padrão ES2015. Também há um bom polyfill no documento MDN para esse recurso.Portanto, obter a distância torna-se tão fácil quanto
Math.hypot(x2-x1, y2-y1)
.fonte
http://en.wikipedia.org/wiki/Euclidean_distance
Se você tiver as coordenadas, use a fórmula para calcular a distância:
Se sua plataforma oferece suporte ao
**
operador , você pode usar:fonte
A distância entre duas coordenadas x e y! x1 e y1 são o primeiro ponto / posição, x2 e y2 são o segundo ponto / posição!
fonte
Math.abs
vez dediff
.diff
como quadrado um número sempre resultará em um número positivo. Sex1 - y1
for negativo,(x1 - y1) ^ 2
ainda é positivo.Eu costumo usar esse cálculo muito nas coisas que faço, então gosto de adicioná-lo ao objeto Math:
Atualizar:
essa abordagem é especialmente feliz quando você acaba em situações semelhantes a esta (eu costumo fazer isso com frequência):
aquela coisa horrível se torna muito mais administrável:
fonte