首页 / CANVAS / Canvas实现曲线运动
Canvas实现曲线运动
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Canvas实现曲线运动,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2712字,纯文字阅读大概需要4分钟。
内容图文
-
前言
Html5添加的最受欢迎的功能就是<canvas>元素,它负责在页面中设定一个区域,然后在里面可以通过javascript动态地在其内绘制图形。
主流浏览器,IE9+,手机端都是支持它的。
-
创建Canvas
要使用Canvas元素就必须先设置其width和height,指定绘图区域的大小
类似:<canvas id="canvas" width="800" height="800"/>
如果要在这块画布上绘图的话,首先要取得绘图上下文,需调用getContext()方法
var canvas=document.getElementById("canvas");
//判断浏览器是否支持canvas
if(canvas.getContext)
{ var draw=canvas.getContext("2d");//这里2d 取得2d上线文对象,还有一个WebGL的3D上下文(还未接触过,不在此陈诉了)
}
我们用2d上下文可以绘制简单的2d图形,如矩形,弧线。
-
利用Canvas创建曲线运动
这里有个demo是曲线运动,直接上代码
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset=gbf> 5 <title>曲线运动</title> 6 <script> 7//box 8var box_x=0; 9var box_y=0; 10var box_width=500; 11var box_height=500; 12//ball 13var ball_x=10; 14var ball_y=10; 15var ball_radius=10; 16var ball_vx=10; 17var ball_vy=0; 18//constant 19var g=10;//note 20var rate=0.9; 21//bound 22var bound_left=box_x+ball_radius; 23var bound_right=box_x+box_width-ball_radius; 24var bound_top=box_y+ball_radius; 25var bound_bottom=box_y+box_height-ball_radius; 26//context 27var ctx; 28function init() 29{ 30 ctx=document.getElementById(‘canvas‘).getContext(‘2d‘); 31// 32 ctx.lineWidth=ball_radius; 33//设置球的颜色34 ctx.fillStyle="rgb(200,0,50)"; 35move_ball(); 36 setInterval(move_ball,100); 37} 3839function move_ball() 40{ 41//清除画布上的矩形区域42ctx.clearRect(box_x,box_y,box_width,box_height); 43move_and_check(); 44//开始曲线路径45ctx.beginPath(); 46//绘制圆球47 ctx.arc(ball_x,ball_y,ball_radius,0,Math.PI*2,true); 48//fillstyle填充49ctx.fill(); 50//绘制指定矩形51ctx.strokeRect(box_x,box_y,box_width,box_height); 52} 5354function move_and_check() 55{ 56var cur_ball_x=ball_x+ball_vx; 57var temp=ball_vy; 58 ball_vy=ball_vy+g; 59var cur_ball_y=ball_y+ball_vy+g/2; 60if(cur_ball_x<bound_left) 61{ 62 cur_ball_x=bound_left; 63 ball_vx=-ball_vx*0.9; 64 ball_vy=ball_vy*0.9; 65} 66if(cur_ball_x>bound_right) 67{ 68 cur_ball_x=bound_right; 69 ball_vx=-ball_vx*0.9; 70 ball_vy=ball_vy*0.9; 71} 72if(cur_ball_y<bound_top) 73{ 74 cur_ball_y=bound_top; 75 ball_vy=-ball_vy*0.9; 76 ball_vx=ball_vx*0.9; 77} 78if(cur_ball_y>bound_bottom) 79{ 80 cur_ball_y=bound_bottom; 81 ball_vy=-ball_vy*0.9; 82 ball_vx=ball_vx*0.9; 83} 84 ball_x=cur_ball_x; 85 ball_y=cur_ball_y; 86} 87 </script> 88 </head> 89 <body onLoad="init()"> 90 <canvas id="canvas" width="800" height="800"/> 91 </body> 92 </html>
代码中包含了少部分2D上下文API。详细API请参考:
http://www.w3school.com.cn/html5/html_5_canvas.asp;
http://blog.teamtreehouse.com/getting-started-with-the-canvas-api
http://javascript.ruanyifeng.com/htmlapi/canvas.html
-
最后
很多css3不能表现的复杂动画,通过canvas,js来配合解决是极好的,当然这里面还有很多东西,这里小小记录下canvas的一下基本用法。
原文:http://www.cnblogs.com/zoujking/p/4370328.html
内容总结
以上是互联网集市为您收集整理的Canvas实现曲线运动全部内容,希望文章能够帮你解决Canvas实现曲线运动所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。