WEB Show [JavaScript] canvas 요소의 모든 것 #3 - 이미지 회전 시키기 / save / restore / rotate / translateyo~og 2021. 10. 27. 23:23 canvas 요소의 모든 것! #3오늘은 커서를 따라오면서 무한으로 회전하는 이미지를 만들어봅시다!
1. 커서를 따라오는 이미지 만들기먼저 setInterval을 사용하여 커서를 따라오는 이미지를 구현해봅시다.
먼저 캔버스의 참조값을 얻어옵니다.
canvas안의 마우스가 움직일때마다 마우스의 커서위치를 offset으로 가져와주고 unitX,unitY에 저장해줍니다. offset의 설명은 여기서 볼 수 있습니다. >>> https://e-you.tistory.com/163 [JavaScript] 마우스 x,y 좌표값 구하기 / client / offset / screen 마우스 x,y 좌표값 구하기 좌표의 종류 clientX, clientY : 현재 문서 기준 위치 offsetX, offsetY : 현재 오브젝트 기준 위치 screenX, screenY : 현재 모니터 기준 위치 Step02_event2.html div.. e-you.tistory.com
사용할 이미지와 배경이미지를 생성해줍니다.
setInterval은 지정한 밀리초마다 함수를 반복적으로 호출합니다. 자세한 내용은 여기서 볼 수 있습니다. >>> https://e-you.tistory.com/177 [JavaScript] setInterval / clearInterval / 일정시간 주기로 반복 작업하기 setInterval, clearInterval이란 무엇일까요? 😀 setInterval : 지정한 밀리초 주기마다 함수를 반복적으로 호출합니다. clearInterval : setInterval의 실행을 취소할 수 있습니다. 기본 문법 let timer = setI.. e-you.tistory.com 예제는 밀리초를 10으로 지정해주었으니 1초에 100번씩 작동하게 됩니다. 먼저 context.save()로 context의 현재 상태를 저장해줍니다. context.translate(unitX,unitY)를 사용하여 x,y만큼 평행 이동 해줍니다. context.drawImage(kimImg, 0-50, 0-50, 100, 100)를 사용하여 이미지를 그려줍니다. context.restore()을 사용하여 context를 다시 복구시킵니다. 이 작업을 1초에 100번씩 반복하게되면 이미지가 마우스를 따라 움직이는 것으로 보이게 됩니다. 2. 이미지 회전 모션 추가이제 이미지가 돌아가는 모션을 추가해 보겠습니다. 전의 코드에서 약간의 변화만 주면됩니다.
그 전의 코드에서 rotate만 추가해주었습니다. context.retate()를 사용하여 context를 angle*Math.PI/180 만큼 회전시켜줍니다. 그리고 angle을 계속해서 더해갑니다. [전체코드] |