Saya memiliki tab gambar kanvas dan ingin lineWidth didasarkan pada jarak antara dua pembaruan koordinat gerakan mouse terakhir. Saya akan menerjemahkan jarak menjadi lebar sendiri, saya hanya perlu tahu bagaimana cara mendapatkan jarak antara titik-titik itu (saya sudah memiliki koordinat titik-titik itu).
javascript
canvas
Anagmate
sumber
sumber
x1 - x2, y1 - y2
ataux2 - x1, y2 - y1
?7 - 5 = 2
atau5 - 7 = -2
tidak masalah.-2 * -2 = 4
2 * 2 = 4
Perhatikan bahwa itu
Math.hypot
adalah bagian dari standar ES2015. Ada juga polyfill yang bagus di dokumen MDN untuk fitur ini.Jadi mendapatkan jarak menjadi semudah
Math.hypot(x2-x1, y2-y1)
.sumber
http://en.wikipedia.org/wiki/Euclidean_distance
Jika Anda memiliki koordinat, gunakan rumus untuk menghitung jarak:
Jika platform Anda mendukung
**
operator , Anda dapat menggunakannya:sumber
Jarak antara dua koordinat x dan y! x1 dan y1 adalah titik / posisi pertama, x2 dan y2 adalah titik / posisi kedua!
sumber
Math.abs
bukandiff
.diff
karena mengkuadratkan angka akan selalu menghasilkan angka positif. Jikax1 - y1
negatif,(x1 - y1) ^ 2
masih positif.Saya cenderung menggunakan perhitungan ini banyak dalam hal-hal yang saya buat, jadi saya ingin menambahkannya ke objek Matematika:
Memperbarui:
pendekatan ini sangat membahagiakan ketika Anda berakhir dalam situasi yang mirip dengan ini (saya sering melakukannya):
hal mengerikan itu menjadi jauh lebih bisa dikelola:
sumber