js+html5实现canvas绘制椭圆形图案的方法


Posted in Javascript onMay 21, 2016

本文实例讲述了js+html5实现canvas绘制椭圆形图案的方法,HTML5 canvas 没有画椭圆的方法,以下代码可以画出椭圆,分享给大家供大家参考,具体实现方法如下:

1、在一个隐式的画布 (将 其 CSS 定义成:display:none; ) 上画园。
2、将隐式画布的影像,以不同的宽高比值,画在另一个显式的画布,以使园变成椭圆。
3、进而,加进动画功能。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>测试颜色背景</title>
<script>
var ticker=0;
var col = new Array("#000000","#A52A2A","#B8860B","pink","green","yellow","red","orange","#BB008B","#8B0000");
 
function drawBackground(){
var canvasHide=document.getElementById("hide"); //隐藏的画布
var g=canvasHide.getContext("2d"); //找出隐藏画布 hide 的画笔 g 
g.clearRect(0,0,1200,800); //清理隐藏画布
var i=0;
do { //画 不同颜色 依次同心发散的园
g.beginPath();
var grd=g.createRadialGradient(300,300,300-i*25, 300,300,265-i*25);
grd.addColorStop(0,col[(0+i+ticker)%col.length]);
grd.addColorStop(1,col[(1+i+ticker)%col.length]);
g.fillStyle=grd;
g.arc(300,300,300-i*25,0,2*Math.PI);
g.fill();
i++;
} while(i<11);
 
//找出显式画布 myCanvas 的画笔 gg 
var gg=document.getElementById("myCanvas").getContext("2d");
gg.clearRect(0,0,myCanvas.width,myCanvas.height); //清理显式画布
 
/* 将隐式画布 hide 的园形图像,
 * 以 宽 600, 高 300 的比例,
 * 画到显式画布 myCanvas,
 * 结果,隐式画布 hide 的园形图像,在显式画布 myCanvas 上 成了椭圆
 */
gg.drawImage(canvasHide,0,0,600,300); 
ticker++;
}
 
function preperation(){
setInterval('drawBackground()',1000);
 }
</script>
<style>
#myCanvas{
 position:absolute;
 left:0px;
 top:0px;
}
#hide{
 display:none;
}
</style>
</head>
 
<body onLoad="preperation()">
<canvas id="myCanvas" width="600" height="400" ></canvas>
<canvas id="hide" width="600" height="600" ></canvas>
 
</body>
</html>

希望本文所述对大家的web程序设计有所帮助。

Javascript 相关文章推荐
Prototype使用指南之ajax
Jan 10 Javascript
JS Timing
Apr 21 Javascript
使用隐藏的new来创建对象
Mar 29 Javascript
Node.js的Web模板引擎ejs的入门使用教程
Jun 06 Javascript
js动态生成form 并用ajax方式提交的实现方法
Sep 09 Javascript
jQuery文字轮播特效
Feb 12 Javascript
JavaScript实现时间表动态效果
Jul 15 Javascript
详解vue.js之props传递参数
Dec 12 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
Aug 13 Javascript
浅谈Vue.use的使用
Aug 29 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
Dec 04 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
Nov 06 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
Apr 28 #Javascript
Markdown+Bootstrap图片自适应属性详解
May 21 #Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
May 21 #Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
May 21 #Javascript
IScroll5 中文API参数说明和调用方法
May 21 #Javascript
JavaScript的ExtJS框架中表格的编写教程
May 21 #Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
May 21 #Javascript
You might like
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
php array_chunk()函数用法与注意事项
2019/07/12 PHP
解决php extension 加载顺序问题
2019/08/16 PHP
Jquery Validation插件防止重复提交表单的解决方法
2010/03/05 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
2011/12/12 Javascript
选择器中含有空格在使用示例及注意事项
2013/07/31 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
jQuery中:eq()选择器用法实例
2014/12/29 Javascript
jquery中checkbox使用方法简单实例演示
2015/11/24 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
浅谈struts1 &amp; jquery form 文件异步上传
2017/05/25 jQuery
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
vue + vuex todolist的实现示例代码
2018/03/09 Javascript
JS伪继承prototype实现方法示例
2018/06/20 Javascript
使用D3.js构建实时图形的示例代码
2018/08/28 Javascript
[02:53]DOTA2英雄昆卡基础教程
2013/11/25 DOTA
[02:02]特效爆炸!DOTA2珍宝之瓶待你开启
2018/08/21 DOTA
使用python分析git log日志示例
2014/02/27 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
Python实现截取PDF文件中的几页代码实例
2019/03/11 Python
对Django外键关系的描述
2019/07/26 Python
Pycharm远程连接服务器并实现代码同步上传更新功能
2020/02/25 Python
Django 返回json数据的实现示例
2020/03/05 Python
解决Python spyder显示不全df列和行的问题
2020/04/20 Python
Python过滤掉numpy.array中非nan数据实例
2020/06/08 Python
Django前后端分离csrf token获取方式
2020/12/25 Python
H5最强接口之canvas实现动态图形功能
2019/05/31 HTML / CSS
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
英国假发网站:Hothair
2018/02/23 全球购物
播音主持女孩的自我评价分享
2013/11/20 职场文书
文明村创建实施方案
2014/03/27 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书