HTML5 Canvas - Rotation


Advertisements


HTML5 canvas provides rotate(angle) method which is used to rotate the canvas around the current origin.

This method only takes one parameter and that's the angle the canvas is rotated by. This is a clockwise rotation measured in radians.

Example

Following is a simple example which we are running two loops where first loop determines the number of rings, and the second determines the number of dots drawn in each ring.

<!DOCTYPE HTML>
<html>
   <head>
      
      <style>
         #test {
            width: 100px;
            height:100px;
            margin: 0px auto;
         }
      </style>
      <script type="text/javascript">
         function drawShape(){
            
            // get the canvas element using the DOM
            var canvas = document.getElementById('mycanvas');
            
            // Make sure we don't execute when canvas isn't supported
            if (canvas.getContext){
               
               // use getContext to use the canvas for drawing
               var ctx = canvas.getContext('2d');
               ctx.translate(100,100);
               
               for (i=1; i<7; i++){
                  ctx.save();
                  ctx.fillStyle = 'rgb('+(51*i)+','+(200-51*i)+',0)';
                  
                  for (j=0; j < i*6; j++){
                     ctx.rotate(Math.PI*2/(i*6));
                     ctx.beginPath();
                     
                     ctx.arc(0,i*12.5,5,0,Math.PI*2,true);
                     ctx.fill();
                  }
                  ctx.restore();
               }
            }
            else {
               alert('You need Safari or Firefox 1.5+ to see this demo.');
            }
         }
      </script>
   </head>
   
   <body id="test" onload="drawShape();">
      <canvas id="mycanvas" width="400" height="400"></canvas>
   </body>

</html>

The above example would produce following result −


html5_canvas.htm

Advertisements