亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

我的for循環為什么不起作用?只能畫出一個星星

$("#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();
}

正在回答

2 回答

我也遇到類似情況,寫在for循環里面就只能出來一個星星,后面我把控制for循環的變量i改成了另外的名字就好了,不知道是不是這個i和for循環里面的方法中含有的變量沖突,但是不應該啊,那些都是局部變量。

0 回復 有任何疑惑可以回復我~

我怎么覺得你第一步for循環中的canvas會出錯呢??canvas是在sky()中定義出來的局部變量,你確定在上面的循環中能用到?

0 回復 有任何疑惑可以回復我~
#1

白水向前沖 提問者

var canvas =document.getElementById("canvas"); var context=canvas.getContext("2d"); 我在上面定義了全局變量,沒帖出來
2015-01-26 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

我的for循環為什么不起作用?只能畫出一個星星

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號