[1] 공 튀기기 애니메이션
공이 캔버스의 모서리에 도달하면 반대 방향으로 움직이는 애니메이션 입니다.
setInterval() 메서드를 이용하여 100일리초(msec)마다 drawBall() 함수를 호출하도록합니다.
setInterval(drawBall, 100);
그리고 drawBall() 함수에서 화면을 초기화한 후 공을 렌더링합니다.
렌더링 처리에서는 우선 fillRect() 메서드로 캔버스의 배경을 흰색으로 한 후 arc() 메서드로 빨간 공을 렌더링합니다.
공의 이동은 dir_x/dir_y(공의 이동양과 방향을 지정하는 속성)만큼 공의 좌표를 증가시켜서 구현하는데, 이동 후의 좌표가 캔버스를 벗어날 경우에는 dir_x/dir_y에 '-1'을 곱하여 반대로 이동 시킵니다.
ball.x += ball.dir_x;
ball.y += ball.dir_y;
if (ball.x < 0 || ball.x > 300) {ball.dir_x*= -1;}
if (ball.y < 0 || ball.y > 300) {ball.dir_y*= -1;}
ball.y += ball.dir_y;
if (ball.x < 0 || ball.x > 300) {ball.dir_x*= -1;}
if (ball.y < 0 || ball.y > 300) {ball.dir_y*= -1;}
[2] 변형과 반투명 효과를 사용한 애니메이션
투명도를 지정하는 globalAlpha 값을 조절하여 하나의 막대만 반투명하게 렌더링합니다.
anim() 함수가 호출될 때마다 변수 ci 값이 1씩 증가하여,
이 변수의 값에 따라 하나의 막대만 진하게 렌더링하게 되어 결과적으로 막대가 회전하는 것 처럼 보입니다.
'HTML5' 카테고리의 다른 글
[그래픽 처리] 둥근 모서리/border-radius (0) | 2012.02.13 |
---|---|
[그래픽 처리] CSS3 애니메이션/HTML5 애니메이션/animation-timing-function (0) | 2012.02.13 |
[그래픽 처리] CSS3/글자 그림자/그림 그림자/box-shadow/text-shadow/변형 (0) | 2012.02.13 |
[그래픽 처리] 변형 행렬의 저장과 복구/회전/save()/restore()/rotate() (0) | 2012.02.10 |
[그래픽 처리] 변형 행렬의 이동과 확대/축소/translate()/scale() (0) | 2012.02.10 |
[그래픽 처리] 변형 행렬 메서드/setTransform()/transform()/rotate()/scale()/translate()/save()/restore() (0) | 2012.02.10 |
[그래픽 처리] 그래프 렌더링/꺽은선 그래프/모눈종이 (0) | 2012.02.10 |