笔记八(圆周运动)
来源:互联网 发布:工业企业分行业数据 编辑:程序博客网 时间:2024/05/01 07:50
使用余弦函数获得x坐标的大小,正弦函数获得y坐标的大小。
牢记:动画编程,谈及x,即想到余弦,谈及y,即想到正弦。
这里创建一个圆周运动和一个椭圆运动。
文件名:circle.html
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>圆周运动</title><style type="text/css"> #canvas{background-color: #99cc33;}</style></head><body><canvas id="canvas" width="400" height="400"></canvas><script type="text/javascript" src="utils.js"></script><script type="text/javascript" src="ball.js"></script><script type="text/javascript"> window.onload = function(){ var canvas = document.getElementById("canvas"), context = canvas.getContext("2d"), ball = new Ball(), angle = 0, centerX = canvas.width/2, centerY = canvas.height/2, radius = 80, speed = 0.05; if (!window.requestAnimationFrame) { window.requestAnimationFrame = (window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback){ return window.setTimeout(callback,1000/60); }) }; (function drawFrame(){ window.requestAnimationFrame(drawFrame,canvas); context.clearRect(0,0,canvas.width,canvas.height); ball.x = centerX + Math.cos(angle) * radius; ball.y = centerY + Math.sin(angle) * radius; angle += speed; ball.draw(context); }()); };</script></body></html>
文件名:oval.html
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>椭圆运动</title></head><style type="text/css"> #canvas{background-color: #99cc33;}</style><body><canvas id="canvas" width="400" height="400"></canvas><script type="text/javascript" src="utils.js"></script><script type="text/javascript" src="ball.js"></script><script type="text/javascript"> window.onload = function(){ var canvas = document.getElementById("canvas"), context = canvas.getContext("2d"), ball = new Ball(), angle = 0, centerX = canvas.width/2, centerY = canvas.height/2, radiusX = 120, radiusY = 60, speed = 0.05; if (!window.requestAnimationFrame) { window.requestAnimationFrame = (window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function(callback){ return window.setTimeout(callback,1000/60); }) }; (function drawFrame(){ window.requestAnimationFrame(drawFrame,canvas); context.clearRect(0,0,canvas.width,canvas.height); ball.x = centerX + Math.cos(angle) * radiusX; ball.y = centerY + Math.sin(angle) * radiusY; angle += speed; ball.draw(context); }()); };</script></body></html>
参见《HTML5+Javascript动画基础》。
0 0
- 笔记八(圆周运动)
- 圆周运动
- 圆周运动(运动小DEMO)
- cocos2dx学习笔记:自定义动作实现圆周运动
- JS原生之--圆周运动(转转转)
- UML笔记(八)
- 创业笔记(八)
- 学习笔记(八)
- C++笔记(八)
- OpenCV笔记(八)
- Swift 笔记(八)
- Spring笔记(八)
- 笔试笔记(八)
- 圆周运动js
- 曲线运动,圆周运动
- J2ME学习笔记(八)
- C++学习笔记(八)
- OpenGL入门笔记(八)
- 【黑马程序员】多线程
- mysql和oracle的语法上的差异
- poj1502
- 抽象工厂模式简单实例
- pyspark 【未完待续】
- 笔记八(圆周运动)
- Navicat for Mysql的操作使用
- swift 快速奔跑的兔几 本节的内容是:用AVAdioPlayer播放声音 语音合成
- java(1)
- opencv学习之cvPyrDown
- c语言的不定长数组
- 非著名程序员公众号
- ORACLE DBA之路
- 文件搜索程序