基于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 响应式媒体查询的示例代码
Sep 25 HTML / CSS
CSS3 @font-face属性使用指南
Dec 12 HTML / CSS
用css3写出气球样式的示例代码
Sep 11 HTML / CSS
css3 边框、背景、文本效果的实现代码
Mar 21 HTML / CSS
css3进阶之less实现星空动画的示例代码
Sep 10 HTML / CSS
HTML5 实现一个访问本地文件的实例
Dec 13 HTML / CSS
HTML5 canvas绘制的玫瑰花效果
May 29 HTML / CSS
canvas简单连线动画的实现代码
Feb 04 HTML / CSS
div或img图片高度随宽度自适应的方法
Feb 06 HTML / CSS
HTML5获取当前地理位置并在百度地图上展示的实例
Jul 10 HTML / CSS
CSS3 制作的悬停缩放特效
Apr 13 HTML / CSS
纯CSS3实现div按照顺序出入效果
Jul 15 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实现ODBC数据分页显示一例
2006/10/09 PHP
php递归实现无限分类生成下拉列表的函数
2010/08/08 PHP
php学习之变量的使用
2011/05/29 PHP
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
2012/10/24 PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
2014/04/10 PHP
PHP文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
php中的依赖注入实例详解
2019/08/14 PHP
jQuery获得内容和属性示例代码
2014/01/16 Javascript
借助JavaScript脚本判断浏览器Flash Player信息的方法
2014/07/09 Javascript
jQuery $.each遍历对象、数组用法实例
2015/04/16 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
jQuery 更改checkbox的状态,无效的解决方法
2016/07/22 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
js实现用户输入的小写字母自动转大写字母的方法
2017/01/21 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
初探JavaScript 面向对象(推荐)
2017/09/03 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
Node错误处理笔记之挖坑系列教程
2018/06/05 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
babel7.x和webpack4.x配置vue项目的方法步骤
2019/05/12 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
Flask框架通过Flask_login实现用户登录功能示例
2018/07/17 Python
在python中利用GDAL对tif文件进行读写的方法
2018/11/29 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
python使用itchat模块给心爱的人每天发天气预报
2019/11/25 Python
python实现TCP文件传输
2020/03/20 Python
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
捷克家电和家具购物网站:OKAY.cz
2020/07/23 全球购物
高中毕业生自我鉴定范文
2013/09/26 职场文书
网站开发实习生的自我评价
2013/12/11 职场文书
个人总结与自我评价
2014/09/18 职场文书
2014年专项整治工作总结
2014/11/17 职场文书