sitelink1 | http://blog.naver.com/shadowbug/220743472013 |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
extra_vars5 | |
extra_vars6 |
캔버스를 회전시킨다.
context |
설명 |
rotate(radian) |
radian 단위만큼 회전시킨다. 도 변환 공식은 radian = degree * Math.PI / 180 이다 |
javascript
(100, 100) (150, 150) 위치의 사각형을 회전시키는 예제이다.
rotate 하나만 사용해서 사각형을 원하는대로 회전시킬 수 없으며
원점을 사각형의 중점으로 이동 시킨후 회전을 시켜야 생각한대로 회전하게 된다.
아래의 순서대로 차근차근 진행하면 올바르게 동작한다.
1. 2d의 평면상태 세팅 ( setTransform 매서드 )
2. 사각형의 중심부를 원점으로 세팅 ( translate )
3. 원하는 값으로 회전 ( rotate )
4. 사각형의 중심부가 원점인 것을 인지하고 사각형을 그린다. ( fillRect )
이 패턴은 회전 뿐만 아니라 여러 예에서도 많이 사용되는 패턴이므로, 잘 숙달 할 필요가 있다.
-
function load(target) {
-
// 실제로 그려지는 위치의 캔버스 생성
-
var canvas = document.getElementById("draw");
-
var ctx = canvas.getContext("2d");
-
-
-
// 입력값
-
var x = 100;
-
var y = 100;
-
var cx = 300;
-
var cy = 300;
-
var degree = 45;
-
-
var width = cx - x;
-
var height = cy - y;
-
var radian = degree * Math.PI / 180;
-
ctx.fillStyle = "red";
-
-
// 2d 평면 상태 세팅
-
ctx.setTransform(1, 0, 0, 1, 0, 0);
-
// 사각형 안으로 원점 이동
-
ctx.translate(x + .5*width, y + .5*height);
-
// 회전
-
ctx.rotate(radian);
-
// 원점이 사각형의 중심임을 인지하고 그림 그리기
-
ctx.fillRect(-.5*width, -.5*height, width, height);
-
}
결과
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
31 | div와 span의 차이점 (from Bing) | 황제낙엽 | 2023.06.16 | 82 |
30 | iframe 다루기 | 황제낙엽 | 2017.02.27 | 1821 |
29 |
Multiple Canvas Layer 예제
![]() | 황제낙엽 | 2016.08.23 | 128 |
28 | Canvas 개요 | 황제낙엽 | 2016.08.22 | 177 |
27 |
Canvas 확대
![]() | 황제낙엽 | 2016.08.22 | 136 |
26 | Canvas setTransform 함수 | 황제낙엽 | 2016.08.22 | 148 |
» |
Canvas 회전
![]() | 황제낙엽 | 2016.08.22 | 152 |
24 |
Canvas 영역 선택
![]() | 황제낙엽 | 2016.08.22 | 141 |
23 | Canvas CanvasRenderingContext2D Context 속성 | 황제낙엽 | 2016.08.22 | 91 |
22 | Canvas 도형의 클릭 이벤트 처리 | 황제낙엽 | 2016.08.22 | 351 |
21 | Canvas 이미지 추출 | 황제낙엽 | 2016.08.22 | 202 |
20 | Canvas 더블버퍼링 | 황제낙엽 | 2016.08.22 | 281 |
19 |
Canvas 비트맵 그리기
![]() | 황제낙엽 | 2016.08.22 | 124 |
18 |
Canvas 그라디언트 그리기
![]() | 황제낙엽 | 2016.08.22 | 141 |
17 |
Canvas 텍스트 그리기
![]() | 황제낙엽 | 2016.08.22 | 102 |
16 |
Canvas 곡선 그리기
![]() | 황제낙엽 | 2016.08.22 | 493 |
15 |
Canvas 다각형 그리기
![]() | 황제낙엽 | 2016.08.22 | 196 |
14 |
Canvas 사각형 그리기
![]() | 황제낙엽 | 2016.08.22 | 141 |
13 |
Canvas 시작하기
![]() | 황제낙엽 | 2016.08.22 | 100 |
12 | Vector Markup Language | 황제낙엽 | 2012.12.20 | 117 |