J'ai un onglet de dessin de toile et je veux que lineWidth soit basé sur la distance entre les deux dernières mises à jour des coordonnées de la souris. Je ferai moi-même la traduction de la distance en largeur, j'ai juste besoin de savoir comment obtenir la distance entre ces points (j'ai déjà les coordonnées de ces points).
javascript
canvas
Anagmate
la source
la source
x1 - x2, y1 - y2
oux2 - x1, y2 - y1
?7 - 5 = 2
ou5 - 7 = -2
n'a pas d'importance.-2 * -2 = 4
2 * 2 = 4
Notez que cela
Math.hypot
fait partie de la norme ES2015. Il existe également un bon polyfill sur la documentation MDN pour cette fonctionnalité.Donc, obtenir la distance devient aussi simple que cela
Math.hypot(x2-x1, y2-y1)
.la source
http://en.wikipedia.org/wiki/Euclidean_distance
Si vous avez les coordonnées, utilisez la formule pour calculer la distance:
Si votre plateforme prend en charge l'
**
opérateur , vous pouvez à la place utiliser cela:la source
La distance entre deux coordonnées x et y! x1 et y1 est le premier point / position, x2 et y2 est le deuxième point / position!
la source
Math.abs
place dediff
.diff
comme quadrillage un nombre se traduira toujours par un nombre positif. Six1 - y1
est négatif,(x1 - y1) ^ 2
est toujours positif.J'ai tendance à utiliser beaucoup ce calcul dans les choses que je fais, donc j'aime l'ajouter à l'objet Math:
Mettre à jour:
cette approche est particulièrement heureuse lorsque vous vous retrouvez dans des situations similaires (je le fais souvent):
cette chose horrible devient beaucoup plus gérable:
la source