为了账号安全,请及时绑定邮箱和手机立即绑定

为什么明明设置了绘制10棵星星,运行之后,出现满画布的星星

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>无标题文档</title>

<script type="text/javascript">

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);


for(i=0;i<10;i++)

{

var r=Math.random()*10+10;

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

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

var a=Math.random()*360;

draw(context,r,r/2,x,y,a);


}

//rot 旋转角度

function draw(cxt,R,r,x,y,rot){

context.beginPath();

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

{

cxt.lineTo(Math.cos((18+i*72-rot)/180*Math.PI)*R+x,

-Math.sin((18+i*72-rot)/180*Math.PI)*R+y);

cxt.lineTo(Math.cos((54+i*72-rot)/180*Math.PI)*r+x,

-Math.sin((54+i*72-rot)/180*Math.PI)*r+y);

}

cxt.closePath();

cxt.lineWidth=3;

cxt.strokeStyle="#fd5";

cxt.lineJoin="round";

cxt.fillStyle="#fb3";


cxt.fill();

cxt.stroke();

}}


</script>

</head>


<body>

<canvas id="canvas" style="border:1px black solid;margin:100px auto;display:block;">

</canvas>

</body>

</html>


正在回答

4 回答

其他的问题,同一楼的,局部使用i时,请用var

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

draw函数里的context.beginPath(); 应该是cxt.beginPath();

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

为何你把draw函数定义在onload内部?移出去试试?

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

for(i=0;i<5;i++) --------------->for(var i=0;i<5;i++) 或者--------->var i=0;for(i=0;i<5;i++)

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

举报

0/150
提交
取消
Canvas绘图详解
  • 参与学习       72895    人
  • 解答问题       422    个

Canvas系列教程第二课,详解Canvas各接口,让同学彻底掌握Canvas绘图

进入课程

为什么明明设置了绘制10棵星星,运行之后,出现满画布的星星

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信