我的for循環(huán)為什么不起作用?只能畫出一個(gè)星星
$("#sky").bind("click",function () {
? ? ? ? ? ?for (var i = 0; i < 200; i++) {
? ? ? ? ? ? ? ?var r = Math.random() * 10 + 10;
? ? ? ? ? ? ? ?var x = Math.random() * canvas.width;
? ? ? ? ? ? ? ?var y = Math.random() * canvas.height;
? ? ? ? ? ? ? ?var a = Math.random() * 360;
? ? ? ? ? ? ? ?sky(x, y, r, r / 2, a);
? ? ? ? ? ?}
? ? ? ?}
? ?)
function sky(x,y,outerR,innerR,rot){
? ?var canvas = document.getElementById("canvas");
? ?canvas.width = 1600;
? ?canvas.height = 700;
? ?var context=canvas.getContext("2d");
? ?context.fillStyle="black";
? ?context.fillRect(0,0,canvas.width,canvas.height);
? ?context.beginPath();
? ?for(var i=0;i<5;i++){
? ? ? ?context.lineTo(Math.cos((18+i*72-rot)/180*Math.PI)*outerR+x,
? ? ? ? ? ? ? ?-Math.sin((18+i*72-rot)/180*Math.PI)*outerR+y);
? ? ? ?context.lineTo(Math.cos((54+i*72-rot)/180*Math.PI)*innerR+x,
? ? ? ? ? ? ? ?-Math.sin((54+i*72-rot)/180*Math.PI)*innerR+y);
? ?}
? ?context.closePath();
? ?context.fillStyle="#fb3"
? ?context.strokeStyle="#fd5"
? ?context.lineWidth=3;
? ?context.lineJoin="round";
? ?/* 線的三種相交方式 ?bevel round
? ? context.lineJoin="bevel"; ? ?*/
? ?context.fill();
? ?context.stroke();
}
2016-07-17
我也遇到類似情況,寫在for循環(huán)里面就只能出來一個(gè)星星,后面我把控制for循環(huán)的變量i改成了另外的名字就好了,不知道是不是這個(gè)i和for循環(huán)里面的方法中含有的變量沖突,但是不應(yīng)該啊,那些都是局部變量。
2015-01-26
我怎么覺得你第一步for循環(huán)中的canvas會(huì)出錯(cuò)呢??canvas是在sky()中定義出來的局部變量,你確定在上面的循環(huán)中能用到?