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中使用gradient实现渐变效果的方法
Aug 18 HTML / CSS
IE9下html5初试小刀
Sep 21 HTML / CSS
Javascript 高级手势使用介绍
Apr 21 HTML / CSS
html5 更新图片颜色示例代码
Jul 29 HTML / CSS
HTML5 transform三维立方体实现360无死角三维旋转效果
Aug 22 HTML / CSS
借助HTML5 Canvas API制作一个简单的猜字游戏
Mar 25 HTML / CSS
HTML5 Canvas 旋转风车绘制
Aug 18 HTML / CSS
HTML5自定义属性前缀data-及dataset的使用方法(html5 新特性)
Aug 24 HTML / CSS
HTML5实现音频和视频嵌入的方法
Aug 22 HTML / CSS
详解三种方式实现平滑滚动页面到顶部的功能
Apr 23 HTML / CSS
Html5页面点击遮罩层背景关闭遮罩层
Nov 30 HTML / CSS
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
Jul 01 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
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
PHP计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
php使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
一段实时更新的时间代码
2006/07/07 Javascript
TinyMCE 新增本地图片上传功能
2010/11/05 Javascript
javascript模拟地球旋转效果代码实例
2013/12/02 Javascript
Visual Studio中js调试的方法图解
2014/06/30 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
简单实现轮播图效果的实例
2016/07/15 Javascript
Bootstrap CSS布局之表单
2016/12/17 Javascript
浅谈JavaScript中promise的使用
2017/01/11 Javascript
vue源码入口文件分析(推荐)
2018/01/30 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
layui自定义插件citySelect实现省市区三级联动选择
2019/07/26 Javascript
JavaScript工具库MyTools详解
2020/01/01 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
Python学习笔记(二)基础语法
2014/06/06 Python
Python中使用Tkinter模块创建GUI程序实例
2015/01/14 Python
python 如何快速找出两个电子表中数据的差异
2017/05/26 Python
浅谈Python peewee 使用经验
2017/10/20 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
python打造爬虫代理池过程解析
2019/08/15 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
pytorch 查看cuda 版本方式
2020/06/23 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
生物科学系大学生的自我评价
2013/12/20 职场文书
会计岗位说明书
2014/07/29 职场文书
高中课前三分钟演讲稿
2014/08/18 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
单位委托书
2014/10/15 职场文书