基于html5绘制圆形多角图案


Posted in HTML / CSS onApril 21, 2016

先看看最简单的效果图:

基于html5绘制圆形多角图案

代码如下:

JavaScript Code复制内容到剪贴板
  1. var canvas = document.getElementById('my'), ctx = canvas.getContext('2d');   
  2. setInterval(

    function(){   
  3. ctx.clearRect(0,0,400,400);   

  4. ctx.save();   

  5.   ctx.translate(200,200);   

  6. var ci =90, pi = Math.PI / ci, x1 = 100, y1 =0, x2 =0, y2 =0, x3 =0, y3 =0;   
  7. ctx.beginPath();   

  8. for(var i = ci *2; i >0; i--){   
  9.   

    ctx.rotate(pi);   

  10. ctx.moveTo(x1,y1);   

  11. y2 = x1 * Math.sin(pi);   

  12. x2 = x1 * Math.cos(pi);   

  13. x3 = (x1 - x2) /2+ x2 +10+ Math.random() *20;   

  14. y3 = y2 /2;   

  15. ctx.lineTo(x3,y3);   

  16. ctx.lineTo(x2,y2);   

  17. }   

  18.   ctx.stroke();   

  19. ctx.restore();   

  20. },100);  

在上面多角形的基础上进一步之后为:

基于html5绘制圆形多角图案

代码如下:

JavaScript Code复制内容到剪贴板
  1. var canvas = document.getElementById('my'), ctx = canvas.getContext('2d'), r =10;   
  2.   

    setInterval(

    function(){   
  3.   

    ctx.clearRect(0,0,400,400);   

  4.   

    ctx.save();   

  5.  

     ctx.translate(200,200);   

  6.    var grad = ctx.createRadialGradient(0,0,0,0,0,r+20);   
  7.  

     grad.addColorStop(0.2,

    'white');   
  8.  

     grad.addColorStop(0.7,

    'yellow');   
  9.     grad.addColorStop(0.8,

    'orange');   
  10.  

     ctx.beginPath();   

  11.   ctx.fillStyle = grad;   

  12.   ctx.arc(0,0,r,0,Math.PI*2,

    true);   
  13.   ctx.fill();   

  14. var ci =90, pi = Math.PI / ci, x2 =0, y2 =0, x3 =0, y3 =0;   
  15.  

     x1 =100;   

  16.   

    y1 =0;   

  17.   

    ctx.beginPath();   

  18.    for(var i = ci *2; i >0; i--){   
  19.   

    ctx.rotate(pi);   

  20.   

    ctx.moveTo(r,0);   

  21.   

    y2 = r * Math.sin(pi);   

  22.   

    x2 = r * Math.cos(pi);   

  23.   
  24.   

    x3 = (r - x2) /2+ x2 +10+ Math.random() *20;   

  25.   

    y3 = y2 /2;   

  26.   
  27.   

    ctx.lineTo(x3,y3);   

  28.   

    ctx.lineTo(x2,y2);   

  29.   

    }   

  30.   

    ctx.fill();   

  31.   

    ctx.restore();   

  32.   

    r <=100&& (r +=2);   

  33.  

    },100);   

  34.   

以上就是本文的全部内容,希望对大家的学习有所帮助。

HTML / CSS 相关文章推荐
css3学习心得分享
Aug 19 HTML / CSS
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
Apr 03 HTML / CSS
css3旋转木马_动力节点Java学院整理
Jul 12 HTML / CSS
css3实现wifi信号逐渐增强效果实例
Aug 09 HTML / CSS
浅谈HTML5新增及移除的元素
Jun 27 HTML / CSS
关于HTML5的安全问题开发人员需要牢记的
Jun 21 HTML / CSS
CSS3 画基本图形,圆形、椭圆形、三角形等
Sep 20 HTML / CSS
canvas环形倒计时组件的示例代码
Jun 14 HTML / CSS
解析html5 canvas实现背景鼠标连线动态效果代码
Jun 17 HTML / CSS
遮罩层 + Iframe实现界面自动显示的示例代码
Apr 26 HTML / CSS
AmazeUI 折叠面板的实现代码
Aug 17 HTML / CSS
HTML基本元素标签介绍
Feb 28 HTML / CSS
浅析border-radius如何兼容IE
Apr 19 #HTML / CSS
如何利用input事件来监听移动端的输入
Apr 15 #HTML / CSS
HTML5移动端开发中的Viewport标签及相关CSS用法解析
Apr 15 #HTML / CSS
整理HTML5移动端开发的常用触摸事件
Apr 15 #HTML / CSS
实例讲解使用SVG制作loading加载动画的方法
Apr 05 #HTML / CSS
移动端HTML5实现文件上传功能【附代码】
Mar 25 #HTML / CSS
HTML5触摸事件演化tap事件介绍
Mar 25 #HTML / CSS
You might like
php堆排序实现原理与应用方法
2015/01/03 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
帝国cms常用标签汇总
2015/07/06 PHP
jQuery 事件队列调整方法
2009/09/18 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
jQuery中innerHeight()方法用法实例
2015/01/19 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
jQuery实现简洁的导航菜单效果
2015/11/23 Javascript
原生js和jQuery实现淡入淡出轮播效果
2015/12/25 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
Nodejs如何复制文件
2016/03/09 NodeJs
快速掌握Node.js之Window下配置NodeJs环境
2016/03/21 NodeJs
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
原生JS实现图片轮播切换效果
2016/12/15 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
在Chrome DevTools中调试JavaScript的实现
2020/04/07 Javascript
仅利用30行Python代码来展示X算法
2015/04/01 Python
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
使用py2exe在Windows下将Python程序转为exe文件
2016/03/04 Python
对python读写文件去重、RE、set的使用详解
2018/12/11 Python
详解python中sort排序使用
2019/03/23 Python
Python中logging日志记录到文件及自动分割的操作代码
2020/08/05 Python
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
戴森英国官网:Dyson英国
2019/05/07 全球购物
毕业生自荐书
2013/12/18 职场文书
助人为乐表扬信范文
2014/01/14 职场文书
纺织工程专业个人求职信范文
2014/01/27 职场文书
庆元旦文艺演出主持词
2014/03/27 职场文书
租房合同协议书
2014/04/09 职场文书
英语教育专业自荐信
2014/05/29 职场文书
酒店服务员岗位职责
2015/02/09 职场文书