我这是除了什么问题
来源:8-1 Canvas动画
光aaaaand影
2019-08-19 08:25:10
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>canvas</title>
<style>
canvas{
background: red;
}
</style>
</head>
<body>
<canvas id="myCanvas" width="400" height="400">
您的浏览器不支持canvas!
</canvas>
<script type="text/javascript">
var myCanvas=document.getElementById("myCanvas");
// getContext() 方法返回一个用于在画布上绘图的环境
var ctx=myCanvas.getContext("2d");
var r=50,dir=1;
setInterval(function(){
r+=10*dir;
ctx.clearRect(0,0,ctx.width,ctx.height);
ctx.fillStyle="yellow";
ctx.arc(200,200,r,0,2*Math.PI);
ctx.fill();
if(r>=200){
dir=-1;
}else if(r<0){
dir=1;
}
},100)
</script>
</body>
</html>老师,我想让这个圆一直放大,碰到画布边时又逐渐缩回去,为什么它在碰到边时只是停住了呢
1回答
同学你好, canvas中画圆的半径不可以是负数哦 你这里碰到边之后, 就会出现如下报错信息

可以结合clearRect方法先清除上一次画的圆, 实现由大到小在变大的效果, clearRect方法的用法,参考下图

建议修改:

如果帮助到了你, 欢迎采纳!
祝学习愉快~~~