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属性选择符介绍
Oct 17 HTML / CSS
利用CSS3实现折角效果实例源码
Sep 28 HTML / CSS
CSS3毛玻璃效果(blur)有白边问题的解决方法
Nov 15 HTML / CSS
纯css3实现宠物小鸡实例代码
Oct 08 HTML / CSS
css3的focus-within选择器的使用
May 11 HTML / CSS
教你如何一步一步用Canvas写一个贪吃蛇
Oct 22 HTML / CSS
HTML5 CSS3新的WEB标准和浏览器支持
Jul 16 HTML / CSS
HTML5 Canvas绘制圆点虚线实例
Jan 01 HTML / CSS
利用HTML5 Canvas制作一个简单的打飞机游戏
May 11 HTML / CSS
实例讲解HTML5的meta标签的一些应用
Dec 08 HTML / CSS
HTML5不支持frameset的两种解决方法
Nov 14 HTML / CSS
Html5获取用户当前位置的几种方式
Jan 18 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 array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
浅谈PHP强制类型转换,慎用!
2013/06/06 PHP
php实现将Session写入数据库
2015/07/26 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
Laravel框架实现调用百度翻译API功能示例
2019/05/30 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
自写简单JS判断是否已经弹出页面
2010/10/20 Javascript
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
js导航菜单(自写)简单大方
2013/03/28 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
layui中的switch开关实现方法
2019/09/03 Javascript
Python中处理unchecked未捕获异常实例
2015/01/17 Python
在Python中使用matplotlib模块绘制数据图的示例
2015/05/04 Python
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
基于python中theano库的线性回归
2018/08/31 Python
Python爬虫实现“盗取”微信好友信息的方法分析
2019/09/16 Python
python 实现绘制整齐的表格
2019/11/18 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
请用Python写一个获取用户输入数字,并根据数字大小输出不同信息的脚本
2014/05/20 面试题
办公室文秘自我鉴定
2013/09/21 职场文书
活动策划邀请函
2014/02/06 职场文书
植树节活动总结
2014/04/30 职场文书
党员个人对照检查材料
2014/10/01 职场文书
经典导游欢迎词
2015/01/26 职场文书
幼儿园开学通知
2015/04/24 职场文书
网络营销实训总结
2015/08/03 职场文书
歌咏比赛口号大全
2015/12/25 职场文书
学生早退检讨书(范文)
2019/08/19 职场文书
《家庭教育》读后感3篇
2019/12/18 职场文书
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript