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 相关文章推荐
event.keyCode键码值表 附只能输入特定的字符串代码
May 15 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
Feb 11 Javascript
jquery 插件学习(三)
Aug 06 Javascript
Javascript实现苹果悬浮虚拟按钮
Apr 10 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
Oct 10 Javascript
jQuery实现标签页效果实战(4)
Feb 08 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
Sep 05 Javascript
ES6 Symbol数据类型的应用实例分析
Jun 26 Javascript
关于vue表单提交防双/多击的例子
Oct 31 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
Apr 17 Javascript
vue+AI智能机器人回复功能实现
Jul 16 Javascript
vue-openlayers实现地图坐标弹框效果
Sep 24 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
phpmyadmin导入(import)文件限制的解决办法
2009/12/11 PHP
解析php利用正则表达式解决采集内容排版的问题
2013/06/20 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
利用PHP如何写APP接口详解
2016/08/23 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
javascript实现的动态添加表单元素input,button等(appendChild)
2007/11/24 Javascript
javascript 解析url的search方法
2010/02/09 Javascript
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
javascript showModalDialog 内跳转页面的问题
2010/11/25 Javascript
使用jQuery UI的tooltip函数修饰title属性的气泡悬浮框
2013/06/24 Javascript
jQuery Form 页面表单提交的小例子
2013/11/15 Javascript
js获取鼠标点击的位置实现思路及代码
2014/05/09 Javascript
javascript常用的方法整理
2015/08/20 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
2017/09/04 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
微信小程序实现3D轮播图效果(非swiper组件)
2019/09/21 Javascript
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
python动态加载包的方法小结
2016/04/18 Python
Python 描述符(Descriptor)入门
2016/11/20 Python
pandas 将list切分后存入DataFrame中的实例
2018/07/03 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
如何卸载python插件
2020/07/08 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
Loreto Gallo英国:欧洲领先的在线药房
2021/01/21 全球购物
人力资源管理毕业生自荐信
2013/11/21 职场文书
植物生产学专业求职信
2014/08/08 职场文书
实验心得体会
2014/09/05 职场文书
抄袭同学作业检讨书1000字
2014/11/20 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
公诉意见书范文
2015/06/05 职场文书
安全教育培训制度
2015/08/06 职场文书
MySQL开启事务的方式
2021/06/26 MySQL