html5模拟平抛运动(模拟小球平抛运动过程)


Posted in HTML / CSS onJuly 25, 2013

物体以一定的初速度沿水平方向抛出,如果物体仅受重力作用,这样的运动叫做平抛运动。平抛运动可看作水平方向的匀速直线运动以及竖直方向的自由落体运动的合运动。平抛运动的物体,由于所受的合外力为恒力,所以平抛运动是匀变速曲线运动,平抛物体的运动轨迹为一抛物线。平抛运动是曲线运动 平抛运动的时间仅与抛出点的竖直高度有关;物体落地的水平位移与时间(竖直高度)及水平初速度有关。


复制代码
代码如下:

<html>
<head>
<meta charset=utf-8>
<title>html5炮弹</title>
<script>
//box
var box_x=0;
var box_y=0;
var box_width=300;
var box_height=300;
//ball
var ball_x=10;
var ball_y=10;
var ball_radius=10;
var ball_vx=10;
var ball_vy=0;
//constant
var g=10;//note
var rate=0.9;
//bound
var bound_left=box_x+ball_radius;
var bound_right=box_x+box_width-ball_radius;
var bound_top=box_y+ball_radius;
var bound_bottom=box_y+box_height-ball_radius;
//context
var ctx;
function init()
{
ctx=document.getElementById('canvas').getContext('2d');
ctx.lineWidth=ball_radius;
ctx.fillStyle="rgb(200,0,50)";
move_ball();
setInterval(move_ball,100);
}
function move_ball()
{
ctx.clearRect(box_x,box_y,box_width,box_height);
move_and_check();
ctx.beginPath();
ctx.arc(ball_x,ball_y,ball_radius,0,Math.PI*2,true);
ctx.fill();
ctx.strokeRect(box_x,box_y,box_width,box_height);
}
function move_and_check()
{
var cur_ball_x=ball_x+ball_vx;
var temp=ball_vy;
ball_vy=ball_vy+g;
var cur_ball_y=ball_y+ball_vy+g/2;
if(cur_ball_x<bound_left)
{
cur_ball_x=bound_left;
ball_vx=-ball_vx*0.9;
ball_vy=ball_vy*0.9;
}
if(cur_ball_x>bound_right)
{
cur_ball_x=bound_right;
ball_vx=-ball_vx*0.9;
ball_vy=ball_vy*0.9;
}
if(cur_ball_y<bound_top)
{
cur_ball_y=bound_top;
ball_vy=-ball_vy*0.9;
ball_vx=ball_vx*0.9;
}
if(cur_ball_y>bound_bottom)
{
cur_ball_y=bound_bottom;
ball_vy=-ball_vy*0.9;
ball_vx=ball_vx*0.9;
}
ball_x=cur_ball_x;
ball_y=cur_ball_y;
}
</script>
</head>
<body onLoad="init()">
<canvas id="canvas" width="400" height="400"/>
</body>
</html>

html5模拟小球平抛运动过程。
HTML / CSS 相关文章推荐
CSS3制作日历实现代码
Jan 21 HTML / CSS
CSS3中设置3D变形的transform-style属性详解
May 23 HTML / CSS
详解CSS3选择器:nth-child和:nth-of-type之间的差异
Sep 18 HTML / CSS
CSS3 毛玻璃效果
Aug 14 HTML / CSS
详解background属性的8个属性值(面试题)
Nov 02 HTML / CSS
HTML5新增的标签和属性归纳总结
May 02 HTML / CSS
html Table 表头固定的实现
Jan 22 HTML / CSS
HTML5 常用语法一览(列举不支持的属性)
Jan 26 HTML / CSS
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
Jan 06 HTML / CSS
详解HTML5 window.postMessage与跨域
May 11 HTML / CSS
HTML5轻松实现全屏视频背景的示例
Apr 23 HTML / CSS
canvas生成带二维码海报的踩坑记录
Sep 11 HTML / CSS
html5记忆翻牌游戏实现思路及代码
Jul 25 #HTML / CSS
html5 乒乓球(碰撞检测)实例二
Jul 25 #HTML / CSS
html5 迷宫游戏(碰撞检测)实例一
Jul 25 #HTML / CSS
html5弹跳球示例代码
Jul 23 #HTML / CSS
x-ua-compatible content=”IE=7, IE=9″意思理解
Jul 22 #HTML / CSS
canvas使用注意点总结
Jul 19 #HTML / CSS
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
Jul 19 #HTML / CSS
You might like
第十节--抽象方法和抽象类
2006/11/16 PHP
mac环境中使用brew安装php5.5.15
2014/08/18 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
FireFox下XML对象转化成字符串的解决方法
2011/12/09 Javascript
javascript定时变换图片实例代码
2013/03/17 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
JS回调函数的应用简单实例
2014/09/17 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
2016/06/17 Javascript
javascript 判断是否是微信浏览器的方法
2016/10/09 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
vue.js全局API之nextTick全面解析
2017/07/07 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
vue 本地服务不能被外部IP访问的完美解决方法
2018/10/29 Javascript
Vue+element 解决浏览器自动填充记住的账号密码问题
2019/06/11 Javascript
python从ftp下载数据保存实例
2013/11/20 Python
零基础写python爬虫之使用Scrapy框架编写爬虫
2014/11/07 Python
Python对数据进行插值和下采样的方法
2018/07/03 Python
python中的字符串内部换行方法
2018/07/19 Python
python全局变量引用与修改过程解析
2020/01/07 Python
python 解决mysql where in 对列表(list,,array)问题
2020/06/06 Python
python 获取字典特定值对应的键的实现
2020/09/29 Python
英国领先的隐形眼镜在线供应商:Lenstore.co.uk
2019/11/24 全球购物
简单说说tomcat的配置
2013/05/28 面试题
怎样写好创业计划书的内容
2014/02/06 职场文书
学生生病请假条范文
2014/02/16 职场文书
预防传染病方案
2014/06/14 职场文书
优秀党务工作者先进事迹材料
2014/12/25 职场文书
云冈石窟导游词
2015/02/04 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
个人总结格式范文
2015/03/09 职场文书
高中诗歌鉴赏教学反思
2016/02/16 职场文书