基于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五个技巧给你的网站带来出色的效果
Apr 02 HTML / CSS
Css3+Js制作漂亮时钟(附源码)
Apr 24 HTML / CSS
一款利用纯css3实现的win8加载动画的实例分析
Dec 11 HTML / CSS
利用CSS3实现折角效果实例源码
Sep 28 HTML / CSS
解决img标签上下出现间隙的方法
Dec 14 HTML / CSS
HTML5 MiranaVideo播放器 (代码开源)
Jun 11 HTML / CSS
如何在Canvas中添加事件的方法示例
May 21 HTML / CSS
HTML5表单验证特性(知识点小结)
Mar 10 HTML / CSS
用CSS3画一个爱心
Apr 27 HTML / CSS
css实现两栏布局,左侧固定宽,右侧自适应的多种方法
Aug 07 HTML / CSS
开发微信小程序之WXSS样式教程
Apr 18 HTML / CSS
css之clearfix的用法深入理解(必看篇)
May 21 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/06/19 PHP
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
childNodes.length与children.length的区别
2009/05/14 Javascript
JavaScript 组件之旅(二)编码实现和算法
2009/10/28 Javascript
用jquery的方法制作一个简单的导航栏
2014/06/23 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
深入探讨JavaScript String对象
2015/03/09 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
2015/06/11 Javascript
js实现文字滚动效果
2016/03/03 Javascript
js制作可以延时消失的菜单
2017/01/13 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
2017/03/14 Javascript
AngularJS基于factory创建自定义服务的方法详解
2017/05/25 Javascript
小程序实现tab标签页
2020/11/16 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
[17:45]DOTA2 HEROES教学视频教你分分钟做大人-军团指挥官
2014/06/11 DOTA
利用Celery实现Django博客PV统计功能详解
2017/05/08 Python
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
python3 requests中使用ip代理池随机生成ip的实例
2018/05/07 Python
python导入模块交叉引用的方法
2019/01/19 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
python 深度学习中的4种激活函数
2020/09/18 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
印度尼西亚手表和包包商店:Urban Icon
2019/12/12 全球购物
中软Java笔试题
2012/11/11 面试题
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
新闻记者实习自我鉴定
2013/09/19 职场文书
现金出纳岗位职责
2014/03/15 职场文书
五年级小学生评语
2014/12/26 职场文书
顶岗实习协议书
2015/01/29 职场文书
迎新生欢迎词2015
2015/07/16 职场文书
好人好事新闻稿
2015/07/17 职场文书
幼儿园大班教育随笔
2015/08/14 职场文书
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技
python数字图像处理:图像的绘制
2022/06/28 Python