HTML5 28

34. requestAnimationFrame() - setInterval()과 동일

GuriZzang.com에 오시면 더 자세한 내용을 보실 수 있습니다. Syntaxwindow.requestAnimationFrame(callback); ParameterscallbackA parameter specifying a function to call when it's time to update your animation for the next repaint. The callback has one single argument, a DOMHighResTimeStamp, which indicates the current time (the time returned from window.performance.now() ) for when requestAnimationFrame starts to fire..

Develop/canvas 2015.08.10

33 .clip() - 잘라내기

GuriZzang.com에 오시면 더 자세한 내용을 보실 수 있습니다. Syntaxctx.clip(); 잘라내기 경로는 캔버스 도형과 비슷하지만, 포토샵의 마스크 등과 같은 의미 입니다. 예를들어 배경 이미지를 별 모양으로 만들고 싶을때 이미지 위에 별모양의 도형을 그린 후 clip()을 사용하면 배경이미지가 별모양 만큼만 보여지는 효과 입니다. 아래의 예제는 간단한 사각형와 원으로 clip() 구현한 예제 입니다.먼저 원을 그린 후 원을 마스크로 만듭니다.이후에 그려지는 오브젝트는 원 마스크 영역에서만 보여지게 됩니다.그럴경우 원을 그리기 전 ctx.save(); 마스크 오브젝트 그리기를 완료한 후 ctx.restore();를 해주시면 됩니다.하지만... 보기보다 마스크영역의 단면이 지저분 하네요. 뜯..

Develop/canvas 2015.08.10

32. globalCompositeOperation - 색상 블렌딩모드 (합성)

GuriZzang.com에 오시면 더 자세한 내용을 보실 수 있습니다. globalCompositeOperation캔버스에 그리려는 색이 그려져 있던 색과 겹쳐질때 어떤식으로 조합할지 지정합니다. 포토샵을 해보신 분들은 아시겠지만 레이어마다 블렌딩모드 라는 옵션이 있습니다. 그거와 비슷하다 보시면 될거 같습니다.globalCompositeOperation = type아래의 값 중에서 'source'라는 단어는 지금 캔버스에 그리려는 색을 말하며, 'desination'이라는 단어는 기존에 캔버스에 그려져 있던 색을 말합니다. 기본 동작은 'source-over" 입니다. copy : 새 도형만 그리고 나머지는 모두 제거한다.darker : 두 도형이 겹치는 부분에서는 두 색의 차이 값을 구하여 최종 색을..

Develop/canvas 2015.08.10

31. measureText() - 글자의 넓이 반환

GuriZzang.com에 오시면 더 자세한 내용을 보실 수 있습니다. Syntaxctx.measureText(text);ParameterstextThe text to measure.Return valueA TextMetrics object. Source ?12345678910111213141516function draw() { var ctx = document.getElementById('canvas').getContext('2d'); ctx.font = "48px serif"; ctx.fillText("Hello world", 10, 50); ctx.font = "48px serif"; ctx.strokeText("Hello world", 10, 100); ctx.font = "48px serif";..

Develop/canvas 2015.08.10

30. strokeText() - 라인으로 글쓰기

GuriZzang.com에 오시면 더 자세한 내용을 보실 수 있습니다. Drawing text캔버스 영역에 텍스트를 그려 줍니다.fillText(text, x, y [, maxWidth])좌표 x,y를 시작으로 text를 그립니다. [maxWidth]는 생략가능하며 text 최대넓이를 제한합니다.strokeText(text, x, y [, maxWidth])좌표 x,y를 시작으로 text 라인을 그립니다. [maxWidth]는 생략가능하며 text 최대넓이를 제한합니다. 아래의 예제는 .fillText(), .strokeText(), measureText(), 최대넓이 지정순 입니다. Source ?12345678910111213141516function draw() { var ctx = document..

Develop/canvas 2015.08.10

29. fillText() - 글자그리기

GuriZzang.com에 오시면 더 자세한 내용을 보실 수 있습니다. Drawing text캔버스 영역에 텍스트를 그려 줍니다.fillText(text, x, y [, maxWidth])좌표 x,y를 시작으로 text를 그립니다. [maxWidth]는 생략가능하며 text 최대넓이를 제한합니다.strokeText(text, x, y [, maxWidth])좌표 x,y를 시작으로 text 라인을 그립니다. [maxWidth]는 생략가능하며 text 최대넓이를 제한합니다. 아래의 예제는 .fillText(), .strokeText(), measureText(), 최대넓이 지정순 입니다. Source ?12345678910111213141516function draw() { var ctx = document..

Develop/canvas 2015.08.10

27. scale() - 크기확대/축소

GuriZzang.com에 오시면 더 자세한 내용을 보실 수 있습니다. .scale() .scale( x, y ) 객체의 정보들(x,y좌표, 가로세로 길이등)을 가로는 x만큼, 세로는 y 만큼 곱해줍니다. ?12345ctx.fillRect( 1,5,10,10 );//x좌표 1, y좌표 5 지점에서 가로10 세로10 크기의 사각형을 그려줍니다.ctx.scale( 10,3 ); //가로10, 세로3만큼 확대ctx.fillRect( 1,5,10,10 );//x좌표 10, y좌표 3, 가로 100, 세로 30 크기의 사각형을 그려줍니다.값이 1일경우 원본사이즈이며 음수로 갈경우 해당 축을 기준으로 반전 됩니다. Source ?1234567891011121314function draw() { var ctx = d..

Develop/canvas 2015.08.10

26. rotate() - 회전하기

GuriZzang.com에 오시면 더 자세한 내용을 보실 수 있습니다. .rotate() .rotate( angle ) 객체를 angle만큼 회전시킵니다. 요소를 angle위치만큼 이동 시킵니다. 요소에 .rotate()를 적용할 경우 생각한것과 다른 위치에 요소가 위치해 있을 수 있습니다. 회전의 기준점이 canvas요소의 0,0위치이기 때문입니다. 요소의 중앙을 기준으로 회전을 시키고 싶을때에는 .translate()로 현재 canvas의 기준점을 요소의 중앙위치로 이동시켜 주어야 합니다. ?1234567ctx.translate(60, 60); // translate to rectangle center // x = x + 0.5 * width// y = y + 0.5 * heightctx.rotate..

Develop/canvas 2015.08.10

25. translate() - 위치이동

GuriZzang.com에 오시면 더 자세한 내용을 보실 수 있습니다. .translate() .translate( x,y ) 객체를 x와 y만큼 이동시킵니다. ?12ctx.translate( 15,15 );ctx.rillRect( 10,10,20,20 );가령 .fillRect( 10,10,20,20 ) 만으로 사각형을 그릴경우 10,10 위치부터 20*20 사각형이 그려지게 됩니다.하지만 .translate( 15,15 )를 주게되면 가로세로 15씩 이동해서 실제 .fillRect( 35,35,20,20 )과 동일한 결과를 얻을 수 있습니다. Source ?123456789101112function draw() { var ctx = document.getElementById('canvas').getC..

Develop/canvas 2015.08.10