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

 更新时间:2016年05月21日 13:53:13   作者:tcxu  
这篇文章主要介绍了js+html5实现canvas绘制椭圆形图案的方法,涉及html5图形绘制的基础技巧,感兴趣的朋友可以参考一下

本文实例讲述了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与cookie 的问题详解

    javascript与cookie 的问题详解

    这篇文章介绍了javascript与cookie 的问题,有需要的朋友可以参考一下
    2013-11-11
  • JavaScript中检测数组的3种方法小结

    JavaScript中检测数组的3种方法小结

    数组检测是指在编程中对数组进行验证和检查的过程,本文主要介绍了JavaScript中检测数组的3种方法小结,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • js调试系列 源码定位与调试[基础篇]

    js调试系列 源码定位与调试[基础篇]

    如果看了1, 2两篇,你对控制台应该有一个初步了解了,今天我们来个简单的调试。昨天留的三个课后练习,差不多就是今天要讲的内容
    2014-06-06
  • 前端使用JavaScript结合CSS实现3D旋转跟随鼠标变化

    前端使用JavaScript结合CSS实现3D旋转跟随鼠标变化

    这篇文章主要介绍了前端使用JavaScript结合CSS实现3D旋转跟随鼠标变化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-01-01
  • 微信小程序学习笔记之获取位置信息操作图文详解

    微信小程序学习笔记之获取位置信息操作图文详解

    这篇文章主要介绍了微信小程序学习笔记之获取位置信息操作,结合实例形式分析了微信小程序获取位置信息的原理、步骤及相关操作注意事项,并结合图文形式予以说明,需要的朋友可以参考下
    2019-03-03
  • 微信小程序在web-view页面增加一个按钮具体代码

    微信小程序在web-view页面增加一个按钮具体代码

    web-view是一个可以用来承载网页的容器,会自动铺满整个小程序页面,这篇文章主要给大家介绍了关于微信小程序在web-view页面增加一个按钮的具体代码,需要的朋友可以参考下
    2023-10-10
  • javascript将数组插入到另一个数组中的代码

    javascript将数组插入到另一个数组中的代码

    下面的代码主要功能就是将数组arr2插入到数组arr1的index位置,需要的朋友可以参考下
    2013-01-01
  • Javascript中异步等待的深入理解

    Javascript中异步等待的深入理解

    Async / Await是人们期待已久的JavaScript功能,它使使用异步功能更加有趣和易于理解。这篇文章主要给大家介绍了关于Javascript中异步等待的相关资料,需要的朋友可以参考下
    2021-05-05
  • echarts几个公司内部数据可视化图表必收藏

    echarts几个公司内部数据可视化图表必收藏

    最近公司有一个需求,要做一个数据可视化的页面,所有的图表都在下面,做这些都是本人自己写的,全部都是真是的项目中的代码,包含有柱状图、折线图、水球图以及散点图,这里直接打出来给大家练手,希望大家多多支持,如果这篇文章对您有用的话必须收藏
    2022-08-08
  • 优雅处理前端异常的几种方式推荐

    优雅处理前端异常的几种方式推荐

    前端一直是距离用户最近的一层,随着产品的日益完善,我们会更加注重用户体验,而前端异常却如鲠在喉,甚是烦人,下面这篇文章主要给大家推荐介绍了关于优雅处理前端异常的几种方式,需要的朋友可以参考下
    2022-08-08

最新评论