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 相关文章推荐
项目实践之javascript技巧
Dec 06 Javascript
js 格式化时间日期函数小结
Mar 20 Javascript
jquery调用asp.net 页面后台的实现代码
Apr 27 Javascript
Javascript判断图片尺寸大小实例分析
Jun 16 Javascript
JS弹出窗口插件zDialog简单用法示例
Jun 12 Javascript
JS前端笔试题分析
Dec 19 Javascript
bootstrap下拉菜单使用方法解析
Jan 13 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
Feb 26 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
Sep 25 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
Apr 15 Javascript
jQuery实现放大镜案例
Oct 19 jQuery
vue调用微信JSDK 扫一扫,相册等需要注意的事项
Jan 03 Vue.js
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
PHP脚本数据库功能详解(中)
2006/10/09 PHP
PHP提取中文首字母
2008/04/09 PHP
PHP基于工厂模式实现的计算器实例
2015/07/16 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
node.js实现端口转发
2016/04/14 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
深入浅析Node.js单线程模型
2017/07/10 Javascript
react native带索引的城市列表组件的实例代码
2017/08/08 Javascript
使用html+js+css 实现页面轮播图效果(实例讲解)
2017/09/21 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
python嵌套函数使用外部函数变量的方法(Python2和Python3)
2016/01/31 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
Python中turtle库的使用实例
2019/09/09 Python
python里反向传播算法详解
2020/11/22 Python
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
个人求职信范文分享
2013/12/13 职场文书
幼儿园中班新学期寄语
2014/01/18 职场文书
学历公证委托书
2014/04/09 职场文书
法语专业求职信
2014/07/20 职场文书
辞职信标准格式
2015/02/27 职场文书
认识实习感想
2015/08/10 职场文书
介绍信应该怎么开?
2019/04/03 职场文书
Vue3.0 手写放大镜效果
2021/07/25 Vue.js