基于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 相关文章推荐
利用CSS的Sass预处理器(框架)来制作居中效果
Mar 10 HTML / CSS
CSS3哪些新特性值得称赞
Mar 02 HTML / CSS
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
May 17 HTML / CSS
浅析css3中matrix函数的使用
Jun 06 HTML / CSS
CSS3制作圆形滚动进度条动画的示例
Nov 05 HTML / CSS
HTML5实现Notification API桌面通知功能
Mar 02 HTML / CSS
html5 分层屏幕适配的方法
Mar 16 HTML / CSS
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
Apr 25 HTML / CSS
HTML5 Convas APIs方法详解
Apr 24 HTML / CSS
前端水印的简单实现代码示例
Dec 02 HTML / CSS
html css3不拉伸图片显示效果
Jun 07 HTML / CSS
HTML实现仿Windows桌面主题特效的实现
Jun 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 数组二分法查找函数代码
2010/02/16 PHP
js cookies 常见网页木马挂马代码 24小时只加载一次
2009/04/13 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
用innerhtml提高页面打开速度的方法
2013/08/02 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
2013/11/22 Javascript
node.js中的path.basename方法使用说明
2014/12/09 Javascript
node.js中的http.createServer方法使用说明
2014/12/14 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
js时钟翻牌效果实现代码分享
2020/07/31 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
值得分享和收藏的Bootstrap学习教程
2016/05/12 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
JS中闭包的经典用法小结(2则示例)
2016/12/28 Javascript
JS基于正则实现数字千分位用逗号分隔的方法
2017/06/16 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
简单了解Vue + ElementUI后台管理模板
2020/04/07 Javascript
[49:27]LGD vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python抓取网页图片并放到指定文件夹
2014/04/24 Python
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
2019/07/22 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
Python小白不正确的使用类变量实例
2020/05/29 Python
运动会广播稿150字
2014/02/19 职场文书
党的群众路线教育实践活动动员会主持词
2014/03/20 职场文书
竞聘书模板
2014/03/31 职场文书
家长对学生的评语
2014/04/18 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
房屋买卖委托书格式范本格式
2014/10/13 职场文书
2014年医院后勤工作总结
2014/12/06 职场文书
培训学校2015年度工作总结
2015/07/20 职场文书
导游词之新疆尼雅遗址
2019/10/16 职场文书
python实现简单区块链结构
2021/04/25 Python