equal
deleted
inserted
replaced
|
1 var ctx = document.getElementById('tutorial').getContext('2d'); |
|
2 ctx.fillRect(0,0,300,300); |
|
3 for (var i=0;i<3;i++) { |
|
4 for (var j=0;j<3;j++) { |
|
5 ctx.save(); |
|
6 ctx.strokeStyle = "#9CFF00"; |
|
7 ctx.translate(50+j*100,50+i*100); |
|
8 drawSpirograph(ctx,20*(j+2)/(j+1),-8*(i+3)/(i+1),10); |
|
9 ctx.restore(); |
|
10 } |
|
11 } |
|
12 |
|
13 function drawSpirograph(ctx,R,r,O){ |
|
14 var x1 = R-O; |
|
15 var y1 = 0; |
|
16 var i = 1; |
|
17 ctx.beginPath(); |
|
18 ctx.moveTo(x1,y1); |
|
19 do { |
|
20 if (i>20000) break; |
|
21 var x2 = (R+r)*Math.cos(i*Math.PI/72) - (r+O)*Math.cos(((R+r)/r)*(i*Math.PI/72)) |
|
22 var y2 = (R+r)*Math.sin(i*Math.PI/72) - (r+O)*Math.sin(((R+r)/r)*(i*Math.PI/72)) |
|
23 ctx.lineTo(x2,y2); |
|
24 x1 = x2; |
|
25 y1 = y2; |
|
26 i++; |
|
27 } while (x2 != R-O && y2 != 0 ); |
|
28 ctx.stroke(); |
|
29 } |