HTML5 canvas createRadialGradient()放射状/圆形渐变

定义和用法

createLinearGradient() 方法创建放射状/圆形渐变对象。

渐变可用于填充矩形、圆形、线条、文本等等。

提示:请使用该对象作为 strokeStyle 或 fillStyle 属性的值。

提示:请使用 addColorStop() 方法规定不同的颜色,以及在 gradient 对象中的何处定位颜色。

原理示意图

JavaScript 语法:

context.createRadialGradient(x0,y0,r0,x1,y1,r1);

参数值

参数 描述
x0 渐变的开始圆的 x 坐标
y0 渐变的开始圆的 y 坐标
r0 开始圆的半径
x1 渐变的结束圆的 x 坐标
y1 渐变的结束圆的 y 坐标
r1 结束圆的半径

实例:

<canvas id="canvas1" width="200" height="200" style="border:1px solid blue;"></canvas>
<script>
    var canvas = document.getElementById(‘canvas1‘);
    var ctx = canvas.getContext(‘2d‘);

    var grd = ctx.createRadialGradient(100, 100, 5, 100, 100, 100);
    grd.addColorStop(0, ‘red‘);
    grd.addColorStop(1, ‘white‘);
    //使用经向渐变
    ctx.fillStyle = grd;
    ctx.fillRect(0, 0, canvas.width, canvas.height);
</script>

浏览器支持

Internet Explorer 9、Firefox、Opera、Chrome 以及 Safari 支持 createRadialGradient() 方法。

注释:Internet Explorer 8 或更早的浏览器不支持 <canvas> 元素。

原理示意说明:

    <canvas id="canvas1" width="400" height="400" style="border:1px solid blue;"></canvas>
    <script>
        var canvas = document.getElementById(‘canvas1‘);
        var ctx = canvas.getContext(‘2d‘);

        //当cycle1在cycle2里边时,并且圆心重合
        var cycle1 = {
            x: 200,
            y: 200,
            r: 25
        };
        var cycle2 = {
            x: 200,
            y: 200,
            r: 80
        };

        ctx.beginPath();
        ctx.arc(cycle1.x, cycle1.y, cycle1.r, 0, Math.PI * 2, false);
        ctx.stroke();
        ctx.beginPath();
        ctx.arc(cycle2.x, cycle2.y, cycle2.r, 0, Math.PI * 2, false);
        ctx.stroke();

        //使用经向渐变
        var grd = ctx.createRadialGradient(cycle1.x, cycle1.y, cycle1.r, cycle2.x, cycle2.y, cycle2.r);
        grd.addColorStop(0, ‘rgba(255,0,0,0.75)‘);
        grd.addColorStop(0.5, ‘rgba(0,255,0,0.75)‘);
        grd.addColorStop(1, ‘rgba(0,0,255,0.75)‘);

        ctx.fillStyle = grd;
        ctx.fillRect(0, 0, 500, 500);

    </script>

一、两个圆大小不相等情况下

1.当cycle1在cycle2里边时,并且圆心重合

2.当cycle1在cycle2里边时,圆心不重合

3.当cycle2在cycle1里边时,圆心不重合时

4.当cycle1和cycle2相离时,并且大小不相同

二、两个圆大小相等情况下

1.当cycle1和cycle2相离时,并且大小相同

2.当cycle1和cycle2相交时,并且大小相同

3.当cycle1和cycle2相交时,圆心相同,并且大小相同

时间: 2024-10-05 16:25:14

HTML5 canvas createRadialGradient()放射状/圆形渐变的相关文章

基于HTML5 Canvas的饼状图表实现教程

昨天我们分享了一款基于HTML5的线性图表应用,效果非常不错,可以看在线DEMO或者实现教程.今天我们继续来分享一款基于HTML5的网页图表,它也是利用Canvas绘制的,但是和前面不同的是,这款图表是饼状图,并且我们可以点击右侧的表格来选中激活当前的图表数据,具体效果可以看DEMO演示. 你也可以在这里查看在线演示 下面是实现的过程及源码,一起分享给大家. HTML代码: <div id="container"> <canvas id="chart&quo

HTML5 canvas带渐变色的圆形进度条动画

query-circle-progress是一款带渐变色的圆形进度条动画特效jQuery插件.该圆形进度条使用的是HTML5 canvas来绘制圆形进度条及其动画效果,进度条使用渐变色来填充,效果非常的酷. 效果演示:http://www.htmleaf.com/Demo/201505271919.html 下载地址:http://www.htmleaf.com/html5/html5-canvas/201505271918.html

html5 canvas绘制矩形和圆形

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body onload="draw(),drawarc()"> <!--绘制的步骤:获取canvas元素->取得上下文->填充与绘制边框->设定绘图样式--> <!--绘制其他复杂图

html5 canvas实现饼状图

实现的效果如下: 通过canvas来实现的,主要是想练习封装插件.只需要在html里面简单的添加代码,就可以实现饼状图的自动添加.对于饼状图的颜色,比例等都可以根据需要进行调节. 具体的代码地址:

html5 canvas 奇怪的形状垂直渐变

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

html5 canvas 奇怪的形状水平渐变(因为大多数的之前的文章把基础都打过了,所以开始写的快了,如果有不明白的,可以回顾下之前的)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

HTML5 程序设计 - 使用HTML5 Canvas API

请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方便查看. 学习笔记,纯手工码字,有错别字什么的请指出,觉得好的请点个赞小小的支持下.谢谢亲们. 本篇,我们将探索如何使用HTML5和Canvas API.Canvas API很酷,可以通过它来动态生成和展示图形.图表.图像以及动画. 本篇将使用渲染API(Rendering API)的基本功能来创建

HTML5 Canvas 学习笔记(canvas绘制线条、矩形、多边形、圆形、圆环、组合图形、文字、自定义图像)

学习资源:http://www.w3school.com.cn/html5/html_5_canvas.asp   http://blog.csdn.net/clh604/article/details/8536059   http://www.jb51.net/html5/70307.html 一.对 canvas 的理解 <canvas>标签是 HTML5 中的新标签,像所有的 dom 对象一样它有自己本身的属性.方法和事件. canvas 是用来在网页上绘制图形的(我们通常称之为画布),

html5 canvas 填充渐变形状

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-