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

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

各位大神,誰可以幫幫小妹看看這段代碼哪出錯了,十分感謝!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>[有問題???]改寫后的繪制200個隨機的五角星</title>

</head>


<body>

<canvas id="canvas" style="margin:auto;top:0;left:0;bottom:0;right:0;position:absolute;">當前瀏覽器不支持,請更換瀏覽器</canvas>

<script>

window.onload=function()

{

var canvas=document.getElementById("canvas");

var context=canvas.getContext("2d");

canvas.width=800;

canvas.height=800;

? ? context.fillStyle="black";

context.fillRect(0,0,canvas.width,canvas.height);

//繪制200個星星

for(var i=0;i<200;i++)

{

? var r=Math.random()*10+10;//產生一個5-15之間的隨機數,Math.random是產生一個0-1之間的數

? var x=Math.random()*canvas.width;

? var y=Math.random()*canvas.height;

? var a=Math.random()*360;//產生一個隨機的角度

? drawStar(context,x,y,a);//進行五角星函數的調用400、400控制星星的位移,R,r控制星星的大小

}


}


//自定義一個繪制五角星的函數,使用時直接調用(使得繪制五角星函數化)

function drawStar(cxt,x,y,rot)

{


cxt.save();

? ? starPath(cxt);

cxt.translate(x,y);

cxt.rotate(rot/180*Math.PI);

?

? ?

?

? ? cxt.lineWidth=1;

cxt.strokeStyle="blue";

cxt.fillStyle="white";

cxt.lineJoin="round";

cxt.fill();

cxt.stroke();

cxt.restore();

}


//繪制標準五角星

function starPath(cxt)

{

cxt.beginPath();

//通過對五角星的十個頂點的分析,得出以下(300為大圓半徑,150為小圓半徑)

for(var i=0;i<5;i++)

{

//最開始為18度,180是JS中是弧度制,400表示使五角星在中間,-rot表示順時針轉30度,繪制五角星時是逆時針繪制的,所以順時針轉的話減相應角度,lineTo的縱坐標是負的,因為JS中Y軸是向下的。

? ? ? ? cxt.lineTo(Math.cos((18+i*72)/180*Math.PI)*20,

? ? ? ? -Math.sin((18+i*72)/180*Math.PI)*20);

cxt.lineTo(Math.cos((54+i*72)/180*Math.PI)*0.5*20,

? ? ? ? -Math.sin((54+i*72)/180*Math.PI)*0.5*20);

}

cxt.closePath();

}

</script>

</body>

</html>


正在回答

6 回答

?starPath(cxt);

cxt.translate(x,y);

cxt.rotate(rot/180*Math.PI);

應該是先圖形變換,再開始畫星星:

cxt.translate(x,y);

cxt.rotate(rot/180*Math.PI);

starPath(cxt);

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

仰望星空望 提問者

非常感謝!
2015-10-29 回復 有任何疑惑可以回復我~

lublank解釋的應該是對的

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

這好坑啊 ?你把canvas 的絕對定位去掉 再試試~!??!

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

這是js?把問題標簽弄到js那邊吧,那樣多點人知道滴

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

額,沒用過canvas,趕快去學習下- -!

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

根本看不懂

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

舉報

0/150
提交
取消

各位大神,誰可以幫幫小妹看看這段代碼哪出錯了,十分感謝!

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

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

幫助反饋 APP下載

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

公眾號

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