복합도형 예제.

그동안 설명했던 내용을 대부분 포함하여 그림을 그려보았습니다.

각 path 부분을 함수화 시키고 사용한다면 간단한 모션까지는 가능할수도 있겠지요?

참고하시기 바랍니다


  • function draw() {  
  •   var ctx = document.getElementById('canvas').getContext('2d');  
  •   roundedRect(ctx,12,12,150,150,15);  
  •   roundedRect(ctx,19,19,150,150,9);  
  •   roundedRect(ctx,53,53,49,33,10);  
  •   roundedRect(ctx,53,119,49,16,6);  
  •   roundedRect(ctx,135,53,49,33,10);  
  •   roundedRect(ctx,135,119,25,49,10);  
  •   
  •   ctx.beginPath();  
  •   ctx.arc(37,37,13,Math.PI/7,-Math.PI/7,true);  
  •   ctx.lineTo(31,37);  
  •   ctx.fill();  
  •   for(var i=0;i<8;i++){  
  •     ctx.fillRect(51+i*16,35,4,4);  
  •   }  
  •   for(i=0;i<6;i++){  
  •     ctx.fillRect(115,51+i*16,4,4);  
  •   }  
  •   for(i=0;i<8;i++){  
  •     ctx.fillRect(51+i*16,99,4,4);  
  •   }  
  •   ctx.beginPath();  
  •   ctx.moveTo(83,116);  
  •   ctx.lineTo(83,102);  
  •   ctx.bezierCurveTo(83,94,89,88,97,88);  
  •   ctx.bezierCurveTo(105,88,111,94,111,102);  
  •   ctx.lineTo(111,116);  
  •   ctx.lineTo(106.333,111.333);  
  •   ctx.lineTo(101.666,116);  
  •   ctx.lineTo(97,111.333);  
  •   ctx.lineTo(92.333,116);  
  •   ctx.lineTo(87.666,111.333);  
  •   ctx.lineTo(83,116);  
  •   ctx.fill();  
  •   ctx.fillStyle = "white";  
  •   ctx.beginPath();  
  •   ctx.moveTo(91,96);  
  •   ctx.bezierCurveTo(88,96,87,99,87,101);  
  •   ctx.bezierCurveTo(87,103,88,106,91,106);  
  •   ctx.bezierCurveTo(94,106,95,103,95,101);  
  •   ctx.bezierCurveTo(95,99,94,96,91,96);  
  •   ctx.moveTo(103,96);  
  •   ctx.bezierCurveTo(100,96,99,99,99,101);  
  •   ctx.bezierCurveTo(99,103,100,106,103,106);  
  •   ctx.bezierCurveTo(106,106,107,103,107,101);  
  •   ctx.bezierCurveTo(107,99,106,96,103,96);  
  •   ctx.fill();  
  •   ctx.fillStyle = "black";  
  •   ctx.beginPath();  
  •   ctx.arc(101,102,2,0,Math.PI*2,true);  
  •   ctx.fill();  
  • Posted by windship