canvas教程

HTML5入门之Canvas:如何用Canvas画板实现一个简单的球在盒子内

字号+ 作者:H5之家 来源:H5之家 2015-10-05 10:08 我要评论( )

HTML5提供了一个非常好的标签那就是Canvas!Canvas元素用于在网页上绘制图形,Canvas画布是一个矩形区域,你可以控制其每一个像素。它拥有多种绘制路径、矩形、

作者:html5Game | 时间:2014-2-25 17:05:14 | [  ] | 来源:HTML5 | 

阅读

阅读:11663 | 

评论

  : 0 |  收藏 HTML5,入门,Canvas,画板,实现,球,简单,盒子,随机,移动  

原创

[摘要]: HTML5提供了一个非常好的标签那就是Canvas! Canvas元素用于在网页上绘制图形,Canvas画布是一个矩形区域,你可以控制其每一个像素。它拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。 今天我们就来讲讲如何通过Javascript在Canvas画布上实现一个球在固定盒子内随机移动的示例: 1、创建Canvas画板 HTML5内声明一个Canvas画板很简单,只需要这样在HTML页面内加入一个canvas标签即可,需要定义其大小和id <canvas> 对不起,你的浏览器不支持Canvas标签! </canvas> 2、实现方...

HTML5提供了一个非常好的标签那就是Canvas!

Canvas元素用于在网页上绘制图形,Canvas画布是一个矩形区域,你可以控制其每一个像素。它拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

今天我们就来讲讲如何通过Javascript在Canvas画布上实现一个球在固定盒子内随机移动的示例:

HTML5入门之Canvas:如何用Canvas画板实现一个简单的球在盒子内随机移动效果

1、创建Canvas画板

HTML5内声明一个Canvas画板很简单,只需要这样在HTML页面内加入一个canvas标签即可,需要定义其大小和id


<canvas> 对不起,你的浏览器不支持Canvas标签! </canvas>


2、实现方案整理

要实现这样一个球在固定盒子内随机移动我们需要做到以下几点:

1)、画板大小固定;

2)、球大小固定且圆心位置随机;

3)、需要考虑球不出边界;

4)、通过setInterval(function(){},speed)方法实现时间间隔通过清空面板和重画模拟球的移动。

3、通过JavaScript操作画板

1)、初始化变量


//x和y为球的圆心坐标 //speed:表示球移动的速度 单位为毫秒 //radius:为球的半径 //width和height为盒子大小 var w, x,y, speed = 500, radius = 50, width = 400, height = 400;


2)、页面初始化绘制画板且设定时间间隔


//初始化 function init() { drawCanvas(); setInterval(moveWheel, speed); } //画盒子 function drawCanvas() { //创建Canvas对象 var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); //在画布面板上面创建一个矩形 ctx.fillStyle = "#000000"; //设置填充颜色值 ctx.fillRect(0, 0, width, height); ctx.fill(); w = ctx; }


3)、随机移动球的实现


//随机移动球 function moveWheel() { clearCanvas(); drawCanvas(); //获得随机坐标 x = getRandomNum(); y = getRandomNum(); //在画布上渲染一个圆形 w.fillStyle = '#FFFFFF'; w.beginPath(); w.arc(x, y, radius, 0, Math.PI * 2, true); w.closePath(); w.fill(); }


4)、获取随机坐标数据


//获取随机数 function getRandomNum() { return Math.random() * (width - radius * 2) + radius; }


5)、清除画布


//清除画布 function clearCanvas() { if (typeof w != "undefined") { w.clearRect(0, 0, width, height); } }


完整示例代码如下所示:


<!doctype html> <html> <head> <title>HTML5标签Canvas画布练习轮子滚动</title> <meta charset="UTF-8" /> </head> <body> <h1>Canvas 标签实现一个球限定在盒子内随机移动效果</h1> <canvas> 对不起,你的浏览器不支持Canvas标签! </canvas> <script type="text/javascript" language="javascript"> //x和y为球的圆心坐标 //speed:表示球移动的速度 单位为毫秒 //radius:为球的半径 //width和height为盒子大小 var w, x,y, speed = 500, radius = 50, width = 400, height = 400; //初始化 function init() { drawCanvas(); setInterval(moveWheel, speed); } //画盒子 function drawCanvas() { //创建Canvas对象 var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); //在画布面板上面创建一个矩形 ctx.fillStyle = "#000000"; //设置填充颜色值 ctx.fillRect(0, 0, width, height); ctx.fill(); w = ctx; } //随机移动球 function moveWheel() { clearCanvas(); drawCanvas(); //获得随机坐标 x = getRandomNum(); y = getRandomNum(); //在画布上渲染一个圆形 w.fillStyle = '#FFFFFF'; w.beginPath(); w.arc(x, y, radius, 0, Math.PI * 2, true); w.closePath(); w.fill(); } //清除画布 function clearCanvas() { if (typeof w != "undefined") { w.clearRect(0, 0, width, height); } } //获取随机数 function getRandomNum() { return Math.random() * (width - radius * 2) + radius; } </script> </body> </html>


 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评
t