DOM Canvas 회전

황제낙엽 2016.08.22 07:17 조회 수 : 152

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 )

 

이 패턴은  회전 뿐만 아니라 여러 예에서도 많이 사용되는 패턴이므로, 잘 숙달 할 필요가 있다.

  1. function load(target) {

  2.     // 실제로 그려지는 위치의 캔버스 생성

  3.     var canvas = document.getElementById("draw");

  4.     var ctx = canvas.getContext("2d");

  5.  

  6.  

  7.     // 입력값

  8.     var x = 100;

  9.     var y = 100;

  10.     var cx = 300;

  11.     var cy = 300;

  12.     var degree = 45;

  13.    

  14.     var width = cx - x;

  15.     var height = cy - y;

  16.     var radian = degree * Math.PI / 180;

  17.     ctx.fillStyle = "red";

  18.    

  19.     // 2d 평면 상태 세팅

  20.     ctx.setTransform(1, 0, 0, 1, 0, 0);

  21.     // 사각형 안으로 원점 이동

  22.     ctx.translate(x + .5*width, y + .5*height);

  23.     // 회전

  24.     ctx.rotate(radian);

  25.     // 원점이 사각형의 중심임을 인지하고 그림 그리기

  26.     ctx.fillRect(-.5*width, -.5*height, width, height);

  27. }

결과

스크린샷_2016-06-21_오후_1.46.30.png

 

 

 

번호 제목 글쓴이 날짜 조회 수
88 HTML5 강좌 12강 - HTML5 태그 - canvas 채우기 스타일,그라데이션 file 황제낙엽 2016.12.03 212
87 HTML5 강좌 11강 - HTML5 태그 - canvas 베지에곡선, 선 스타일 file 황제낙엽 2016.12.03 166
86 HTML5 강좌 10강 - HTML5 태그 - canvas 원그리기 file 황제낙엽 2016.12.03 202
85 HTML5 강좌 9강 - HTML5 태그 - canvas 다각형 file 황제낙엽 2016.12.03 127
84 HTML5 강좌 8강 - HTML5 태그 - canvas 선그리기 file 황제낙엽 2016.12.03 136
83 HTML5 강좌 7강 - HTML5 태그 - canvas 사각형 file 황제낙엽 2016.12.03 118
82 HTML5 강좌 6강 - HTML5 태그 - canvas #1 file 황제낙엽 2016.12.03 205
81 HTML5 강좌 5강 - HTML5 태그 - prograss,download file 황제낙엽 2016.12.03 130
80 HTML5 강좌 4강 - HTML5 태그 - mark,time,meter file 황제낙엽 2016.12.03 141
79 HTML5 강좌 3강 - HTML5 레이아웃 잡아보기 file 황제낙엽 2016.12.03 139
78 HTML5 강좌 2강 - HTML5 시맨틱웹을 위한 구성요소 file 황제낙엽 2016.12.03 346
77 HTML5 강좌 1강 - HTML5 개념 및 기본구조 file 황제낙엽 2016.12.03 131
76 HTTP 오류 코드의 종류 황제낙엽 2016.12.01 138
75 Multiple Canvas Layer 예제 file 황제낙엽 2016.08.23 128
74 Canvas 개요 황제낙엽 2016.08.22 177
73 Canvas 확대 file 황제낙엽 2016.08.22 136
72 Canvas setTransform 함수 황제낙엽 2016.08.22 148
» Canvas 회전 file 황제낙엽 2016.08.22 152
70 Canvas 영역 선택 file 황제낙엽 2016.08.22 141
69 Canvas CanvasRenderingContext2D Context 속성 황제낙엽 2016.08.22 91