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制作炫酷带方向感应的鼠标滑过图片3D动画
Mar 16 HTML / CSS
CSS3之transition实现下划线的示例代码
May 30 HTML / CSS
HTML5之SVG 2D入门4—笔画与填充
Jan 30 HTML / CSS
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
Jan 31 HTML / CSS
HTML5+CSS3应用详解
Feb 24 HTML / CSS
html5小技巧之通过document.head获取head元素
Jun 04 HTML / CSS
基于HTML5的WebGL经典3D虚拟机房漫游动画
Nov 15 HTML / CSS
HTML5 Blob对象的具体使用
May 22 HTML / CSS
Html5 canvas画图白板踩坑
Jun 01 HTML / CSS
解决flex布局中子项目尺寸不受flex-shrink限制
May 11 HTML / CSS
flex布局中使用flex-wrap实现换行的项目实践
Jun 21 HTML / CSS
微信小程序纯CSS实现无限弹幕滚动效果
Sep 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 编写大型网站问题集
2010/05/07 PHP
测试php函数的方法
2013/11/13 PHP
php统计数组元素个数的方法
2015/07/02 PHP
Laravel框架控制器,视图及模型操作图文详解
2019/12/04 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
2020/05/29 PHP
PHP 8新特性简介
2020/08/18 PHP
070823更新的一个[消息提示框]组件 兼容ie7
2007/08/29 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
2016/05/26 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
2017/09/07 jQuery
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
2020/07/27 Javascript
[18:20]DOTA2 HEROS教学视频教你分分钟做大人-昆卡
2014/06/11 DOTA
Python深入学习之闭包
2014/08/31 Python
Python中.py文件打包成exe可执行文件详解
2017/03/22 Python
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
python使用sqlite3时游标使用方法
2018/03/13 Python
Pandas之groupby( )用法笔记小结
2019/07/23 Python
python实现的读取网页并分词功能示例
2019/10/29 Python
Python标准库itertools的使用方法
2020/01/17 Python
CSS3,线性渐变(linear-gradient)的使用总结
2017/01/09 HTML / CSS
HTML5网页音乐播放器的示例代码
2017/11/09 HTML / CSS
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
屈臣氏马来西亚官网:Watsons马来西亚
2019/06/15 全球购物
村优秀党员事迹材料
2014/01/15 职场文书
《孔子拜师》教学反思
2014/02/24 职场文书
2014党员学习习主席讲话思想汇报
2014/09/15 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
2014年图书馆工作总结
2014/11/25 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
Java版 单机五子棋
2022/05/04 Java/Android