基于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中border-radius属性设定圆角的使用技巧
May 10 HTML / CSS
纯CSS3实现表单验证效果(非常不错)
Jan 18 HTML / CSS
初探CSS3中的calc()功能
Jul 14 HTML / CSS
关于HTML5的22个初级技巧(图文教程)
Jun 21 HTML / CSS
html5 桌面提醒:Notifycations应用介绍
Nov 27 HTML / CSS
HTML5 Canvas绘制五星红旗
May 04 HTML / CSS
HTML5拖放API实现拖放排序的实例代码
May 11 HTML / CSS
three.js模拟实现太阳系行星体系功能
Sep 03 HTML / CSS
HTML5通过navigator.mediaDevices.getUserMedia调用手机摄像头问题
Apr 27 HTML / CSS
h5页面背景图很长要有滚动条滑动效果的实现
Jan 27 HTML / CSS
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
Aug 23 HTML / CSS
HTML5中的DOCUMENT.VISIBILITYSTATE属性详解
May 07 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程序员的技术瓶颈分析
2011/07/17 PHP
destoon各类调用汇总
2014/06/20 PHP
PHP判断表单复选框选中状态完整例子
2014/06/24 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
javascript removeChild 使用注意事项
2009/04/11 Javascript
jQuery插件原来如此简单 jQuery插件的机制及实战
2012/02/07 Javascript
js获取class的所有元素
2013/03/28 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
Javascript添加监听与删除监听用法详解
2014/12/19 Javascript
Treegrid的动态加载实例代码
2016/04/29 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
JavaScript实现的选择排序算法实例分析
2017/04/14 Javascript
Vue.js 单页面多路由区域操作的实例详解
2017/07/17 Javascript
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
js中async函数结合promise的小案例浅析
2019/04/14 Javascript
javascript 构建模块化开发过程解析
2019/09/11 Javascript
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
python创造虚拟环境方法总结
2019/03/04 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
python飞机大战游戏实例讲解
2020/12/04 Python
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
英国的一家创新礼品和小工具零售商:Menkind
2019/08/24 全球购物
德国咖啡批发商:Coffeefair
2019/08/26 全球购物
美国领先的眼镜和太阳镜在线零售商:Glasses.com
2019/08/26 全球购物
计算机专业职业生涯规划范文
2014/01/19 职场文书
办公室副主任职责范本
2014/03/08 职场文书
2014年五四青年节活动方案
2014/03/29 职场文书
慰问信格式规范
2015/03/23 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
人与自然的观后感
2015/06/18 职场文书
初中生物教学反思
2016/02/20 职场文书
2019学子的答谢词范本!
2019/07/05 职场文书
Django实现drf搜索过滤和排序过滤
2021/06/21 Python
springBoot基于webSocket实现扫码登录
2021/06/22 Java/Android
Spring实现内置监听器
2021/07/09 Java/Android