h5 canvas绘制的旋转小球
来源:互联网 发布:面试淘宝美工常见问题 编辑:程序博客网 时间:2024/04/30 07:31
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>$</title></head><body><canvas id="canvas" width="800" height="600" style="border:1px solid red"></canvas></body><script> function RotateBall(opt) { for (var key in opt) { this[key] = opt[key]; } this.init() } RotateBall.prototype = { init: function () { this.loop(); }, loop:function(){ var self = this; this.timer = setInterval(function () { self.ctx.clearRect(0,0,self.ctx.canvas.width,self.ctx.canvas.height); self.ctx.font = '20px 微软雅黑'; self.ctx.textAlign = 'center'; self.ctx.textBaseline = 'middle'; self.start += 0.01 * Math.PI; //绘制 self.drawBigCircle(); self.drawSmallCircles(); }, 20); }, drawBigCircle: function () { var ctx = this.ctx; ctx.beginPath(); ctx.arc(this.bigX, this.bigY, this.bigRadius, 0, 2 * Math.PI); ctx.stroke(); }, drawSmallCircles: function () { var dataL = this.data.length; var radian = 2 * Math.PI / dataL; var bigRadius = this.bigRadius; var bigX = this.bigX; var bigY = this.bigY; var datas = this.data; for (var i = 0; i < dataL; i++) { var startRadian = radian * i + this.start; var b = bigRadius * Math.cos(startRadian); var h = bigRadius * Math.sin(startRadian); var smallX = bigX + b; var smallY = bigY + h; this.drawSmallCircle(smallX, smallY); this.drawSmallCircle(startRadian); this.drawText(datas[i], smallX, smallY); } }, drawSmallCircle: function (smallX, smallY) { var ctx = this.ctx; ctx.save() ctx.beginPath(); ctx.arc(smallX, smallY, this.smallRadius, 0, 2 * Math.PI); ctx.fillStyle = 'skyblue'; ctx.fill(); ctx.restore(); }, drawText: function (data, smallX, smallY) { ctx.save() ctx.beginPath(); ctx.fillStyle = 'orange'; ctx.fillText(data, smallX, smallY); ctx.restore(); } }; var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); var data = ['php', '前端', 'ios', '安卓', 'python', 'java']; var obj = { ctx: ctx, bigX: 300, bigY: 300, bigRadius: 150, data: data, smallRadius: 30, start: 0 } var rball = new RotateBall(obj);</script></html>
0 0
- h5 canvas绘制的旋转小球
- h5 canvas绘制的时钟
- H5 canvas无法绘制图像的原因
- h5 canvas 绘制的写轮眼特效
- H5 canvas 绘制五星红旗
- Canvas绘制页面小球跳动
- Canvas绘制旋转太极
- canvas绘制旋转转盘
- H5 canvas 绘制简易时钟
- canvas躁动的小球
- H5动画,canvas绘制圆环百分比进度的动态效果
- H5动画,canvas绘制圆环百分比进度的动态效果
- canvas 简单的绘制H5页面生成图片
- 用H5 canvas实现唯美渐变色块的绘制
- html5 canvas实现小球绕圆旋转
- html5 canvas 实现小球绕椭圆旋转
- Canvas绘制平抛小球效果
- 绘制canvas彩色泡泡小球碰撞
- 经典算法汇总-第一章
- Leetcode练习 412. Fizz Buzz
- 【作业2】客户端的配置与应用
- tree
- 简单的RecycerView
- h5 canvas绘制的旋转小球
- JSON学习笔记
- 215. Kth Largest Element in an Array
- 多线程_同步的特点及好处和弊端
- android利用ViewPage和ImageView实现主界面导航
- 005
- JS初学者使用jQuery开发一款弹幕射击游戏
- Python初学list与tuple教程
- PHP的线程安全与非线程安全