| 1 | function roundedRect(ctx,x,y,width,height,radius){
|
|---|
| 2 | ctx.beginPath();
|
|---|
| 3 | ctx.moveTo(x,y+radius);
|
|---|
| 4 | ctx.lineTo(x,y+height-radius);
|
|---|
| 5 | ctx.quadraticCurveTo(x,y+height,x+radius,y+height);
|
|---|
| 6 | ctx.lineTo(x+width-radius,y+height);
|
|---|
| 7 | ctx.quadraticCurveTo(x+width,y+height,x+width,y+height-radius);
|
|---|
| 8 | ctx.lineTo(x+width,y+radius);
|
|---|
| 9 | ctx.quadraticCurveTo(x+width,y,x+width-radius,y);
|
|---|
| 10 | ctx.lineTo(x+radius,y);
|
|---|
| 11 | ctx.quadraticCurveTo(x,y,x,y+radius);
|
|---|
| 12 | ctx.stroke();
|
|---|
| 13 | }
|
|---|
| 14 |
|
|---|
| 15 | var canvas = document.getElementById('tutorial');
|
|---|
| 16 |
|
|---|
| 17 | // Make sure we don't execute when canvas isn't supported
|
|---|
| 18 | if (canvas.getContext){
|
|---|
| 19 |
|
|---|
| 20 | // use getContext to use the canvas for drawing
|
|---|
| 21 | var ctx = canvas.getContext('2d');
|
|---|
| 22 |
|
|---|
| 23 | // Draw shapes
|
|---|
| 24 | roundedRect(ctx,12,12,150,150,15);
|
|---|
| 25 | roundedRect(ctx,19,19,150,150,9);
|
|---|
| 26 | roundedRect(ctx,53,53,49,33,10);
|
|---|
| 27 | roundedRect(ctx,53,119,49,16,6);
|
|---|
| 28 | roundedRect(ctx,135,53,49,33,10);
|
|---|
| 29 | roundedRect(ctx,135,119,25,49,10);
|
|---|
| 30 |
|
|---|
| 31 | // Character 1
|
|---|
| 32 | ctx.beginPath();
|
|---|
| 33 | ctx.arc(37,37,13,Math.PI/7,-Math.PI/7,false);
|
|---|
| 34 | ctx.lineTo(34,37);
|
|---|
| 35 | ctx.fill();
|
|---|
| 36 |
|
|---|
| 37 | // blocks
|
|---|
| 38 | for(i=0;i<8;i++){
|
|---|
| 39 | ctx.fillRect(51+i*16,35,4,4);
|
|---|
| 40 | }
|
|---|
| 41 | for(i=0;i<6;i++){
|
|---|
| 42 | ctx.fillRect(115,51+i*16,4,4);
|
|---|
| 43 | }
|
|---|
| 44 | for(i=0;i<8;i++){
|
|---|
| 45 | ctx.fillRect(51+i*16,99,4,4);
|
|---|
| 46 | }
|
|---|
| 47 |
|
|---|
| 48 | // character 2
|
|---|
| 49 | ctx.beginPath();
|
|---|
| 50 | ctx.moveTo(83,116);
|
|---|
| 51 | ctx.lineTo(83,102);
|
|---|
| 52 |
|
|---|
| 53 | ctx.bezierCurveTo(83,94,89,88,97,88);
|
|---|
| 54 | ctx.bezierCurveTo(105,88,111,94,111,102);
|
|---|
| 55 | ctx.lineTo(111,116);
|
|---|
| 56 | ctx.lineTo(106.333,111.333);
|
|---|
| 57 | ctx.lineTo(101.666,116);
|
|---|
| 58 | ctx.lineTo(97,111.333);
|
|---|
| 59 | ctx.lineTo(92.333,116);
|
|---|
| 60 | ctx.lineTo(87.666,111.333);
|
|---|
| 61 | ctx.lineTo(83,116);
|
|---|
| 62 | ctx.fill();
|
|---|
| 63 | ctx.fillStyle = "white";
|
|---|
| 64 | ctx.beginPath();
|
|---|
| 65 | ctx.moveTo(91,96);
|
|---|
| 66 | ctx.bezierCurveTo(88,96,87,99,87,101);
|
|---|
| 67 | ctx.bezierCurveTo(87,103,88,106,91,106);
|
|---|
| 68 | ctx.bezierCurveTo(94,106,95,103,95,101);
|
|---|
| 69 | ctx.bezierCurveTo(95,99,94,96,91,96);
|
|---|
| 70 | ctx.moveTo(103,96);
|
|---|
| 71 | ctx.bezierCurveTo(100,96,99,99,99,101);
|
|---|
| 72 | ctx.bezierCurveTo(99,103,100,106,103,106);
|
|---|
| 73 | ctx.bezierCurveTo(106,106,107,103,107,101);
|
|---|
| 74 | ctx.bezierCurveTo(107,99,106,96,103,96);
|
|---|
| 75 | ctx.fill();
|
|---|
| 76 | ctx.fillStyle = "black";
|
|---|
| 77 | ctx.beginPath();
|
|---|
| 78 | ctx.arc(101,102,2,0,Math.PI*2,true);
|
|---|
| 79 | ctx.fill();
|
|---|
| 80 | ctx.beginPath();
|
|---|
| 81 | ctx.arc(89,102,2,0,Math.PI*2,true);
|
|---|
| 82 | ctx.fill();
|
|---|
| 83 | }
|
|---|