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 相关文章推荐
$()JS小技巧
Jul 21 Javascript
js以对象为索引的关联数组
Jul 04 Javascript
showModelDialog弹出文件下载窗口的使用示例
Nov 19 Javascript
Javascript字符串浏览器兼容问题分析
Dec 01 Javascript
JS实现的3D拖拽翻页效果代码
Oct 31 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
Aug 24 Javascript
js注入 黑客之路必备!
Sep 14 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
Nov 04 Javascript
Vue.js实现简单动态数据处理
Feb 13 Javascript
jQuery实现搜索页面关键字的功能
Feb 16 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
Aug 08 Javascript
判断iOS、Android以及PC端的示例代码
Nov 15 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
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
推荐5款跨平台的PHP编辑器
2014/12/25 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
php 使用curl模拟登录人人(校内)网的简单实例
2016/06/06 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
js触发asp.net的Button的Onclick事件应用
2013/02/02 Javascript
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
jquery遍历checkbox介绍
2014/02/21 Javascript
input标签内容改变的触发事件介绍
2014/06/18 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
2015/03/05 Javascript
javascript适合移动端的日期时间拾取器
2015/11/10 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
2016/05/09 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
Angular的事件和表单详解
2016/12/26 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
2017/08/09 jQuery
Easyui 去除jquery-easui tab页div自带滚动条的方法
2019/05/10 jQuery
详解JavaScript数据类型和判断方法
2020/09/04 Javascript
浅谈Django学习migrate和makemigrations的差别
2018/01/18 Python
解决Pycharm后台indexing导致不能run的问题
2019/06/27 Python
python项目对接钉钉SDK的实现
2019/07/15 Python
python实现图片中文字分割效果
2019/07/22 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
Python中sorted()排序与字母大小写的问题
2020/01/14 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
2020/06/10 Python
解决PDF 转图片时丢文字的一种可能方式
2021/03/04 Python
浅谈HTML5 &amp; CSS3的新交互特性
2016/07/19 HTML / CSS
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
介绍Ibatis的核心类
2013/11/18 面试题
巡警年度自我鉴定
2014/02/21 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
2014年银行个人工作总结
2014/12/05 职场文书
大学生逃课检讨书
2015/05/04 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书
tomcat下部署jenkins的方法
2022/05/06 Servers