[그래픽 처리] 변형 행렬의 저장과 복구
[1] save(), restore()
save()메서드와 restore()메서드의 형식은 다음과 같습니다.
[1] save(), restore()
save()메서드와 restore()메서드의 형식은 다음과 같습니다.
context.save()
context.restore()
이 메서드들은 모두 스택(stack) 구조를 이용하고 있기 때문에 원하는 곳에서 원하는 횟수만큼 이용할 수 있습니다.
스택을 탑에 비유를 해보면, save() 메서드로 벽돌을 쌓고 restore() 메서드로 벽돌을 꺼내는 것에 해당합니다.
save(), restore() 메서드로 저장/복구되는 정보는 다음과 같습니다.
● 변형 행렬
● 렌더링 스타일
● 현재의 패스
[2] rotate()
rotate() 메서드는 도형을 회전시키는데, 아래의 형식을 가지고 있습니다.
인수로 지정하는 angle은 각도를 나타내는데, 단위를 '라디안'으로 나타낸다.
각도를 라디안으로 변환하는 계산식은 다음과 같다.
● 변형 행렬
● 렌더링 스타일
● 현재의 패스
[2] rotate()
rotate() 메서드는 도형을 회전시키는데, 아래의 형식을 가지고 있습니다.
context.rotate(angle)
인수로 지정하는 angle은 각도를 나타내는데, 단위를 '라디안'으로 나타낸다.
각도를 라디안으로 변환하는 계산식은 다음과 같다.
var rad=deg*Math*PI/180;
먼저 빨간 사각형을 먼저 렌더링한다.
행렬의 상태를 저장하고 이동 및 45도 회전을 지정하여 파란 사각형을 렌더링한다.
렌더링 후 행렬의 상태를 복구하여 90도 회전시킨 초록 사각형을 렌더링한다.
'HTML5' 카테고리의 다른 글
[그래픽 처리] CSS3 애니메이션/HTML5 애니메이션/animation-timing-function (0) | 2012.02.13 |
---|---|
[그래픽 처리] CSS3/글자 그림자/그림 그림자/box-shadow/text-shadow/변형 (0) | 2012.02.13 |
[그래픽 처리] 애니메이션/setInterval() (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 |
[그래픽 처리] 그림 파일 렌더링/drawImage() (0) | 2012.02.09 |