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 相关文章推荐
利用CSS的Sass预处理器(框架)来制作居中效果
Mar 10 HTML / CSS
CSS3 开发工具收集
Apr 17 HTML / CSS
详解HTML5中的标签
Jun 19 HTML / CSS
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
Jul 13 HTML / CSS
js实现移动端H5页面手指滑动刻度尺功能
Nov 16 HTML / CSS
分享一个H5原生form表单的checkbox特效代码
Feb 26 HTML / CSS
HTML5中的Scoped属性使用实例
Apr 23 HTML / CSS
HTML5中的autofocus(自动聚焦)属性介绍
Apr 23 HTML / CSS
html5使用canvas绘制一张图片
Dec 15 HTML / CSS
Html5新增标签有哪些
Apr 13 HTML / CSS
HTML+css盒子模型案例(圆,半圆等)“border-radius” 简单易上手
May 10 HTML / CSS
HTML实现仿Windows桌面主题特效的实现
Jun 28 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中文字符截取防乱码
2008/03/28 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
IE和Mozilla的兼容性汇总event
2007/08/12 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
JS trim去空格的最佳实践
2011/10/30 Javascript
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
js浮点数保留两位小数点示例代码(四舍五入)
2013/12/26 Javascript
jquery中push()的用法(数组添加元素)
2014/11/25 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
微信小程序使用第三方库Underscore.js步骤详解
2016/09/27 Javascript
js实现加载更多功能实例
2016/10/27 Javascript
js编写选项卡效果
2017/05/23 Javascript
JavaScript登录验证基础教程
2017/11/01 Javascript
详解服务端预渲染之Nuxt(介绍篇)
2019/04/07 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
js实现简单放大镜效果
2020/03/07 Javascript
VUE实现吸底按钮
2021/03/04 Vue.js
Python入门篇之字典
2014/10/17 Python
Python基础学习之常见的内建函数整理
2017/09/06 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
基于Jquery和Css3代码制作可以缩放的搜索框
2015/11/19 HTML / CSS
计算机学生求职信范文
2014/01/30 职场文书
2014年班主任自我评价范文
2014/04/23 职场文书
公司委托书格式
2014/08/01 职场文书
超市开店计划书
2014/09/15 职场文书
2014年法制宣传日活动方案
2014/11/02 职场文书
表彰大会新闻稿
2015/07/17 职场文书
Python网络编程之ZeroMQ知识总结
2021/04/25 Python
python爬取某网站原图作为壁纸
2021/06/02 Python
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js
SQL Server中的游标介绍
2022/05/20 SQL Server