![]() Capt. Horatio T.P. Webb |
Parks -- Fall 2013 |
Methods: | |
name_for_the_canvas_context.rotate(angle) | angle is in radians radians = degrees*180.0/Math.PI |
name_for_the_canvas_context.clearRect(0,0,w,h); | clears the contents of the canvas
w = width of the canvas |
Here is a canvas:
<canvas id="rot_example" width="500" height="500""></canvas>
Here is the code:
var rotex = document.getElementById("rot_example"); var rotc = rotex.getContext("2d"); var faceimg=new Image(); faceimg.src="captsm.jpg"; // // *** draw center cross hairs // rotc.moveTo(250,240); rotc.lineTo(250,260); rotc.stroke(); rotc.moveTo(240,250); rotc.lineTo(260,250); rotc.stroke(); // draw the image, a rectangle and some text in the upper left quadrant rotc.rect(200,210,200,30); rotc.drawImage(faceimg,100,100); rotc.strokeText(" Originally NO Rotation",235,225); rotc.stroke(); // draw the image, a rectangle and some text in the lower left quadrant rotc.rect(10,410,300,40); rotc.drawImage(faceimg,10,300); rotc.strokeText("20 rotations -- 4.5 degrees each = 90 degrees total",15,425); rotc.strokeText("Center is the lower right hand corner of the original image",15,440); rotc.stroke(); // rotate the redraw upper quandrant elements rotc.save(); rotc.translate(250,250) rotc.rotate(Math.PI/4.0); rotc.translate(-250,-250) rotc.rect(200,210,200,30); rotc.drawImage(faceimg,100,100); rotc.strokeText("After Rotation pi/4 or 45 degrees",235,225); rotc.stroke(); rotc.restore(); // place and rotate 20 copies of the captain at 4.5 degrees increments radians=Math.PI/(2.0*20) radian_increment=Math.PI/(2.0*20); for (i=1;i<21;i++) { rotc.save(); rotc.translate(110,400); rotc.rotate(radians); rotc.translate(-110,-400) rotc.drawImage(faceimg,10,300); rotc.restore(); radians=radians+radian_increment; }