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实现图片无间断轮播效果
Aug 25 HTML / CSS
css3的transform造成z-index无效解决方案
Dec 04 HTML / CSS
纯CSS3实现的阴影效果
Dec 24 HTML / CSS
简单介绍CSS3中Media Query的使用
Jul 07 HTML / CSS
CSS3绘制有活力的链接下划线
Jul 14 HTML / CSS
浅谈css3中的前缀
Jul 20 HTML / CSS
微信浏览器左上角返回按钮拦截功能
Nov 21 HTML / CSS
详解HTML5中的拖放事件(Drag 和 drop)
Nov 14 HTML / CSS
html5简介_动力节点Java学院整理
Jul 07 HTML / CSS
使用html5 canvas绘制圆环动效
Jun 03 HTML / CSS
AmazeUI中各种的导航式菜单与解决方法
Aug 19 HTML / CSS
CSS实现章节添加自增序号的方法
Jun 23 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
PHP文件操作实现代码分享
2011/09/01 PHP
php session的锁和并发
2016/01/22 PHP
IE和Firefox下javascript的兼容写法小结
2008/12/10 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
JQuery控制div外点击隐藏而div内点击不会隐藏的方法
2015/01/13 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
2016/07/27 Javascript
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
AngularJS表单和输入验证实例
2016/11/02 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
2017/02/27 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
2017/07/21 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
2018/08/16 Javascript
实例讲解vue源码架构
2019/01/24 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
vue实现文件上传读取及下载功能
2020/11/17 Javascript
微信小程序 轮播图实现原理及优化详解
2019/09/29 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
Python微信公众号开发平台
2018/01/25 Python
Python Json序列化与反序列化的示例
2018/01/31 Python
python与C、C++混编的四种方式(小结)
2019/07/15 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
PyQt 图解Qt Designer工具的使用方法
2019/08/06 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
2020/07/01 Python
学历公证书范本
2014/04/09 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
个人委托书如何写
2014/09/25 职场文书
2015年宣传部部长竞选演讲稿
2014/11/28 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书
php引用传递
2021/04/01 PHP
Win11查看设备管理器
2022/04/19 数码科技