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实例教程(19) 使用HoTMetal(5)
Dec 23 Javascript
Js 时间函数getYear()的使用问题探讨
Apr 01 Javascript
js实现页面转发功能示例代码
Aug 05 Javascript
JavaScript简单实现鼠标拖动选择功能
Mar 06 Javascript
jQuery取得设置清空select选择的文本与值
Jul 08 Javascript
上传图片js判断图片尺寸和格式兼容IE
Sep 01 Javascript
jquery单选框radio绑定click事件实现方法
Jan 14 Javascript
JS实现自定义简单网页软键盘效果代码
Nov 05 Javascript
理解JS绑定事件
Jan 19 Javascript
jQuery输入框密码的显示隐藏【代码分享】
Apr 29 jQuery
vue倒计时刷新页面不会从头开始的解决方法
Mar 03 Javascript
用JS实现飞机大战小游戏
Jun 09 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
高分R级DC动画剧《哈莉·奎茵》第二季正式预告首发
2020/04/09 欧美动漫
PHP多进程编程总结(推荐)
2016/07/18 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
PHP7 其他语言层面的修改
2021/03/09 PHP
jquery 删除字符串最后一个字符的方法解析
2014/02/11 Javascript
JavaScript Serializer序列化时间处理示例
2014/07/31 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
2014/11/24 Javascript
微信小程序购物商城系统开发系列-工具篇的介绍
2016/11/21 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
es6系列教程_ Map详解以及常用api介绍
2017/09/25 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
[01:10]DOTA2 Supermajor:英雄,由我们见证
2018/05/14 DOTA
Python中线程编程之threading模块的使用详解
2015/06/23 Python
理解python正则表达式
2016/01/15 Python
Python迭代和迭代器详解
2016/11/10 Python
Python判断两个list是否是父子集关系的实例
2018/05/04 Python
python 统计数组中元素出现次数并进行排序的实例
2018/07/02 Python
selenium+python实现自动登陆QQ邮箱并发送邮件功能
2019/12/13 Python
Python列表切片常用操作实例解析
2019/12/16 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
2020/03/18 Python
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
光荣入党自我鉴定
2014/01/22 职场文书
大学军训感言200字
2014/02/26 职场文书
党员承诺书格式
2014/05/21 职场文书
团队拓展活动总结
2014/08/27 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
朋友聚会祝酒词
2015/08/10 职场文书
致运动员的广播稿
2015/08/19 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书
详解MySQL连接挂死的原因
2021/05/18 MySQL
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle