基于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中Color的一些特性介绍
May 27 HTML / CSS
使用CSS3编写类似iOS中的复选框及带开关的按钮
Apr 11 HTML / CSS
使用css3 属性如何丰富图片样式(圆角 阴影 渐变)
Nov 22 HTML / CSS
HTML5 script元素async、defer异步加载使用介绍
Aug 23 HTML / CSS
阻止移动设备(手机、pad)浏览器双击放大网页的方法
Jun 03 HTML / CSS
HTML5标签大全
Nov 23 HTML / CSS
html5组织内容_动力节点Java学院整理
Jul 10 HTML / CSS
Html5实现首页动态视频背景的示例代码
Sep 25 HTML / CSS
HTML5实现直播间评论滚动效果的代码
May 27 HTML / CSS
Html5页面播放M4a音频文件
Mar 30 HTML / CSS
css3实现的加载动画效果
Apr 07 HTML / CSS
HTML5来实现本地文件读取和写入的实现方法
May 25 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
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
用PHP+MySql编写聊天室
2006/10/09 PHP
PHP生成月历代码
2007/06/14 PHP
php过滤表单提交的html等危险代码
2014/11/03 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
2016/05/19 PHP
ExtJS的FieldSet的column列布局
2009/11/20 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
基于javascript实现tab选项卡切换特效调试笔记
2016/03/30 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
Angular2数据绑定详解
2017/04/18 Javascript
JS通过调用微信API实现微信支付功能的方法示例
2017/06/29 Javascript
JS数组去重的6种方法完整实例
2018/12/08 Javascript
Vue批量图片显示时遇到的路径被解析问题
2019/03/28 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
2019/03/28 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
2019/05/28 jQuery
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
JS如何实现动态添加的元素绑定事件
2019/11/12 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
vue使用vue-quill-editor富文本编辑器且将图片上传到服务器的功能
2021/01/13 Vue.js
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
python实现转盘效果 python实现轮盘抽奖游戏
2019/01/22 Python
django2.2安装错误最全的解决方案(小结)
2019/09/24 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
Python结合Window计划任务监测邮件的示例代码
2020/08/05 Python
Python爬虫之Selenium多窗口切换的实现
2020/12/04 Python
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
节约用水演讲稿
2014/05/21 职场文书
十佳好少年事迹材料
2014/08/21 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
高考百日冲刺决心书
2015/09/23 职场文书
《社戏》教学反思
2016/02/22 职场文书
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python
redis的list数据类型相关命令介绍及使用
2022/01/18 Redis