SquiggleCam
1.0.0
원래 Gregg Wygonik에서 구현 한 Squiggledraw 알고리즘의 웹 기반 구현.
이 프로젝트의 온라인 버전은 웹캠에서 사진을 찍어 플로터를 그리기 가능한 레이저로 만들기 쉬운 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 라이센스