การใช้งานบนเว็บของอัลกอริทึม Squiggledraw ซึ่งเดิมดำเนินการโดย Gregg Wygonik
เวอร์ชันออนไลน์ของโครงการนี้จะถ่ายภาพจากเว็บแคมของคุณและเปลี่ยนเป็นไฟล์ SVG ที่วาดด้วยพล็อตเทอร์ได้
นี่คือตัวอย่างของภาพเอาต์พุตที่สร้างขึ้นด้วยเครื่องมือนี้:
และนี่คือวิดีโอพล็อตเตอร์ของฉันที่ใช้เครื่องมือนี้:
โคลนหรือดาวน์โหลด repo นี้จากนั้นเรียกใช้คำสั่งนี้เพื่อให้ได้การพึ่งพาทั้งหมดที่ติดตั้งในเครื่อง:
npm install
จากนั้นเรียกใช้คำสั่งนี้เพื่อดูการเปลี่ยนแปลงและเปิดหน้า HTML ในเบราว์เซอร์:
npm run dev
อัลกอริทึมประมวลผลภาพด้วยวิธีต่อไปนี้:
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
ไฟล์ SVG เอาท์พุทที่สร้างขึ้นด้วยเครื่องมือนี้สามารถอัปโหลดไปยังตัวแปลง SVG -> GCODE (หรือคล้ายกัน) เพื่อที่จะพล็อตบนพล็อตเตอร์ปากกาหรือแกะสลักบนเครื่องตัดเลเซอร์
หากคุณต้องการใช้สิ่งเหล่านี้หรือมีส่วนร่วม - โปรดสร้างปัญหาและอย่าลังเลที่จะส่ง PR ฉันจะขอบคุณ
ใบอนุญาต MIT