Implementasi berbasis web algoritma Squiggledraw, yang awalnya diimplementasikan oleh Gregg Wygonik.
Versi online dari proyek ini mengambil gambar dari webcam Anda dan mengubahnya menjadi file SVG yang dapat diukir dari plotter yang dapat digulirkan.
Berikut adalah contoh gambar output yang dihasilkan dengan alat ini:
Dan inilah video plotter saya yang menggunakan alat ini:
Klon atau unduh repo ini, lalu jalankan perintah ini untuk mendapatkan semua dependensi diinstal secara lokal:
npm install
Kemudian, jalankan perintah ini untuk menonton perubahan dan meluncurkan halaman HTML di browser:
npm run dev
Algoritma memproses gambar dengan cara berikut:
Retrieve photo as an array of pixels IMAGE
Set desired number of horizontal lines as LINE_COUNT
Set desired number of vertical spacing as SPACING
Set desired line amplitude as AMPLITUDE
Set desired line rotation frequency as FREQUENCY
For y :=0 to image height step image height / LINE_COUNT do
Set startx := 0
Set starty := y
Create a set of coordinates as [startx, starty]
For x := 1 to image width step SPACING do
Get brightness br of the current pixel as average of r,g,b values
Set r := (255 - br) / LINE_COUNT * AMPLITUDE
Set a := (255 - br) / FREQUENCY
Create a set of coordinates as [x, y + Math.sin(a) * r]
Pass the resulting array of coordinates to rendering application
File output SVG yang dihasilkan dengan alat ini dapat diunggah ke konverter SVG -> GCode (atau serupa) agar dapat diplot pada plotter pena atau diukir pada pemotong laser.
Jika Anda ingin menerapkan semua ini atau berkontribusi - silakan buat masalah dan jangan ragu untuk mengirimkan PR, saya akan sangat menghargai itu.
Lisensi MIT