笔记十九(基本动画——速度实例)
来源:互联网 发布:windows10不兼容软件 编辑:程序博客网 时间:2024/06/04 19:19
本节笔记中引用的js文件具体参见前几节笔记。
速度实例中主要理解速度向量概念。
自此节笔记开始,代码段:
if (!window.requestAnimationFrame) { window.requestAnimationFrame = (window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback){ return window.setTimeout(callback,1000/60); }) };
写入utils.js文件里。
速度实例1:文件名:velocity1.html。
<!DOCTYPE html><html><head> <meta charset = "utf-8"> <title>速度实例1</title><style>#canvas{background-color: #99cc33;}</style></head><body><canvas id="canvas" width="400" height="400"></canvas><script type="text/javascript" src="ball.js"></script><script type="text/javascript" src="utils.js"></script><script type="text/javascript"> window.onload = function(){ var canvas = document.getElementById('canvas'), context = canvas.getContext("2d"), ball = new Ball(), angle = 45, speed = 1; ball.x = 50; ball.y = 100; (function drawFrame(){ window.requestAnimationFrame(drawFrame,canvas); context.clearRect(0,0,canvas.width,canvas.height); var radius = angle*Math.PI/180, vx = Math.cos(radius)*speed, vy = Math.sin(radius)*speed; ball.x += vx; ball.y += vy; ball.draw(context); }()); }</script></body></html>
效果图:
文件名:velocity2.html。
<!DOCTYPE html><html><head> <meta charset = "utf-8"> <title>速度实例2</title><style>#canvas{background-color: #99cc33;}</style></head><body><canvas id="canvas" width="400" height="400"></canvas><script type="text/javascript" src="arrow.js"></script><script type="text/javascript" src="utils.js"></script><script type="text/javascript"> window.onload = function(){ var canvas = document.getElementById('canvas'), context = canvas.getContext("2d"), mouse = utils.captureMouse(canvas), arrow = new Arrow(), speed = 3; (function drawFrame(){ window.requestAnimationFrame(drawFrame,canvas); context.clearRect(0,0,canvas.width,canvas.height); var dx = mouse.x - arrow.x, dy = mouse.y - arrow.y, angle = Math.atan2(dy,dx), vx = Math.cos(angle)*speed, vy = Math.sin(angle)*speed; arrow.rotation = angle; arrow.x += vx; arrow.y += vy; arrow.draw(context); }()); }</script></body></html>
效果图:
文件名:velocity3.html。
<!DOCTYPE html><html><head> <meta charset = "utf-8"> <title>速度实例3</title><style>#canvas{background-color: #99cc33;}</style></head><body><canvas id="canvas" width="400" height="400"></canvas><script type="text/javascript" src="arrow.js"></script><script type="text/javascript" src="utils.js"></script><script type="text/javascript"> window.onload = function(){ var canvas = document.getElementById('canvas'), context = canvas.getContext("2d"), arrow = new Arrow(), vr = 3; arrow.x = canvas.width/2; arrow.y = canvas.height/2; (function drawFrame(){ window.requestAnimationFrame(drawFrame,canvas); context.clearRect(0,0,canvas.width,canvas.height); arrow.rotation += vr*Math.PI/180; arrow.draw(context); }()); }</script></body></html>
效果图:
参见《HTML5+Javascript动画基础》。
0 0
- 笔记十九(基本动画——速度实例)
- opencv学习笔记(十九)——图像滤波综合运用实例
- js动画(1)——速度动画
- iOS学习笔记-076.核心动画02——CABasicAnimation(基本动画)
- 【Unity 3D】学习笔记二十九:游戏实例——简单小地图制作
- iOS动画——回弹动画实例(pop动画)
- 设计模式笔记(十九) —— 命令模式
- Android学习笔记(十九)——SeekBar与RatingBar
- OpenCV学习笔记(十九)——浅尝contrib
- Swift学习笔记(十九)——Swift数组
- Oracle学习笔记(十九)——管理索引
- 协议和委托—Swift学习笔记(十九)
- Ogre基本动画实例
- swift 笔记 (十九) —— 协议
- 学习笔记(十九)
- Android Interpolator动画属性——设置动画速度
- 漫步微积分二十九——微积分基本定理
- MC新手入门(十九)------ 动画结束事件
- mybatis3.x Cannot load JDBC driver class '${jdbc.driverClassName}
- Git-0.99 README 第一部分 基本对象
- Android之android studio如何获取证书指纹 (SHA1)
- FragmentTabHost的使用和重复创建问题的优化
- iOS 异步图片加载优化与常用开源库分析
- 笔记十九(基本动画——速度实例)
- 关于Random(47)和nextint(3)的问题
- 第十二周项目3-图遍历算法实现(1)
- android(39)(创建图形的拷贝、旋转、镜子效果、颜色变化)
- 12月7日,BOOST库安装及配置
- Android Notification
- 颜色转换 IOS中十六进制的颜色转换为UIColor
- stm32 RO RW ZI
- Java获取文件类型Mime Type的各种方法