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字体效果的设置方法小结
Jun 13 HTML / CSS
25个CSS3动画按钮和菜单教程分享
Oct 03 HTML / CSS
实列教程 一款基于jquery和css3的响应式二级导航菜单
Nov 13 HTML / CSS
浅谈CSS3中display属性的Flex布局的方法
Aug 14 HTML / CSS
css3实现圆锥渐变conic-gradient效果
Feb 12 HTML / CSS
HTML5-WebSocket实现聊天室示例
Dec 15 HTML / CSS
HTML5移动端开发遇见的东西
Oct 11 HTML / CSS
HTML5 创建canvas元素示例代码
Jun 04 HTML / CSS
使用phonegap播放音频的实现方法
Mar 31 HTML / CSS
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
Jul 31 HTML / CSS
怎样实现H5+CSS3手指滑动切换图片的示例代码
May 05 HTML / CSS
HTML5 语义化标签(移动端必备)
Aug 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
mysql 中InnoDB和MyISAM的区别分析小结
2008/04/15 PHP
php在字符串中查找另一个字符串
2008/11/19 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
js 获取Listbox选择的值的代码
2010/04/15 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
JS继承 笔记
2011/07/13 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
轻松学习Javascript闭包
2017/03/01 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
React中如何引入Angular组件详解
2018/08/09 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
详解mpvue实现对苹果X安全区域的适配
2019/07/31 Javascript
Vue3.x源码调试的实现方法
2019/10/13 Javascript
nuxt 服务器渲染动态设置 title和seo关键字的操作
2020/11/05 Javascript
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
2017/01/20 Python
python退出命令是什么?详解python退出方法
2018/12/10 Python
Python字典循环添加一键多值的用法实例
2019/01/20 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
详解python实现数据归一化处理的方式:(0,1)标准化
2019/07/17 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
办公室内勤工作职责
2013/12/11 职场文书
房地产财务管理制度
2014/02/02 职场文书
货车司机岗位职责
2014/03/18 职场文书
中职招生先进个人材料
2014/08/31 职场文书
班主任高考寄语
2015/02/26 职场文书
2015年村计划生育工作总结
2015/04/28 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
python 遍历磁盘目录的三种方法
2021/04/02 Python