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 相关文章推荐
IE矩阵Matrix滤镜旋转与缩放及如何结合transform
Nov 29 HTML / CSS
CSS3哪些新特性值得称赞
Mar 02 HTML / CSS
详解使用HTML5的classList属性操作CSS类
Oct 13 HTML / CSS
关于HTML5你必须知道的28个新特性,新技巧以及新技术
May 28 HTML / CSS
html5中地理位置定位api接口开发应用小结
Jan 04 HTML / CSS
仿酷狗html5手机音乐播放器主要部分代码
May 15 HTML / CSS
利用html5的websocket实现websocket聊天室
Dec 12 HTML / CSS
HTML5全屏(Fullscreen)API详细介绍
Apr 24 HTML / CSS
html5中的一些标签学习(心得)
Oct 18 HTML / CSS
HTML5 拖放(Drag 和 Drop)详解与实例代码
Sep 14 HTML / CSS
HTML5拖拽功能实现的拼图游戏
Jul 31 HTML / CSS
CSS中em的正确打开方式详解
Apr 08 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
体育彩票排列三组选三算法分享
2014/03/07 PHP
ThinkPHP模板判断输出Defined标签用法详解
2014/06/30 PHP
php使用Jpgraph创建3D饼形图效果示例
2017/02/15 PHP
我也种棵OO树JXTree[js+css+xml]
2007/04/02 Javascript
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
Js 时间间隔计算的函数(间隔天数)
2011/11/15 Javascript
JS动态调用方法名示例介绍
2013/12/18 Javascript
js清理Word格式示例代码
2014/02/13 Javascript
js的[defer]和[async]属性
2014/11/24 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
2016/11/28 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
Preload基础使用方法详解
2020/02/03 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
[14:03]2017DOTA2亚洲邀请赛开幕式:12神兵演绎水墨中华
2017/04/01 DOTA
[01:03:47]VP vs NewBee Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
DataFrame 数据合并实现(merge,join,concat)
2020/06/14 Python
python 多线程爬取壁纸网站的示例
2021/02/20 Python
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
如何用H5实现一个触屏版的轮播器的实例
2017/01/09 HTML / CSS
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
如何在Shell脚本中使用函数
2015/09/06 面试题
个人求职简历的自我评价
2013/10/19 职场文书
行政专员岗位职责
2014/01/02 职场文书
统计学教授推荐信
2014/09/18 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
写给媳妇的检讨书
2015/05/06 职场文书
联谊活动总结范文
2015/05/09 职场文书
2015年党支部书记工作总结
2015/05/21 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书
如何设置多台电脑共享打印机?多台电脑共享打印机的方法
2022/04/08 数码科技