创建径向渐变使用

createRadialGrdient(x0,y0,r0,x1,y1,r1)​

一共​六个参数,分别代表:

起点的圆心坐标(第一个和第二个参数),

起点园的半径(第三个参数),

终点的圆心坐标(第四个和第五个参数),

终点的圆心半径(第六个参数)​。

该方法返回CanvasGradient对象,该对象定义了addColorStop方法。

addColorStop(,);

两个参数,第一个是要添加颜色的位置,第二个是要添加的纯色。

代码示例:

 var ctx = document.querySelector('canvas').getContext('2d');

 var grad = ctx.createRadialGrdient(250,70,20,200,60,100);

 grad.addColorStop(0,'red');

 grad.addColorStop(0.5,'green');

 grad.addColorStop(1,'blue');

 ctx.fillStyle = grad;

 ctx.fillRect(0,0,500,140);

在这个例子里,起点圆比较小,被终点圆包围,当我们给这个渐变添加颜色的时候,他们会被放置在起点圆边界和终点圆边界之间的一条线段上。就是addColorStop里面的的0-1之间。

因此我们可以指定这两个圆的位置,所以圆边界之间的距离可能会有变化,颜色渐变速度可能也会有所不同。

注意:当你设定的两个圆不存在包含关系的时候要小心,不同浏览器对于如何开始渐变存在不一致性,结果也很混乱。

可结合另一篇​文章《Canvas使用渐变之-线性渐变详解》一起阅读理解。

Canvas使用渐变之-径向渐变详解的更多相关文章

  1. 如何把canvas元素作为网站背景总结详解

    如何把canvas元素作为网站背景总结详解 一.总结 一句话总结:最简单的做法是绝对定位并且z-index属性设置为负数. 1.如何把canvas元素作为网站背景的两种方法? a.设置层级(本例代码就 ...

  2. 使用canvas来完成线性渐变和径向渐变的功能

    fillStyle的第二种使用情况就是渐变色的填充.渐变色就分为线性渐变色和径向渐变色.   线性渐变:大致分为两步 这里又会使用到canvas的两个新的函数.   第一步 : 使用一个新的函数cre ...

  3. CSS3线性渐变和径向渐变

    background:linear-gradient(to top left, blue,orange);//从右下角往左上角渐变 background:radial-gradient(to top ...

  4. css3 线性渐变和径向渐变

    线性渐变:ie6以下不兼容 径向渐变:只支持firefox.Chrome和Safari <!DOCTYPE html> <html> <head> <meta ...

  5. Css3渐变(Gradients)-径向渐变

    CSS3径向渐变-radial-gradient()/repeating-radial-gradient() 径向渐变由它的中心定义. 创建径向渐变,至少定义两种颜色节点,呈现平稳过度的颜色.同时,你 ...

  6. CSS3 02. 边框、边框圆角、边框阴影、边框图片、渐变、线性渐变、径向渐变、背景、过渡transition、2D转换

    边框圆角 border-radius 每个角可以设置两个值,x值.y值 border-top-left-radius:水平半径 垂直半径 border-radius:水平半径/垂直半径 border- ...

  7. css3渐变之径向渐变

    径向渐变由它的中心定义.可以指定渐变的中心.形状(原型或椭圆形).大小.默认情况下,渐变的中心是 center(表示在中心点),渐变的形状是 ellipse(表示椭圆形),渐变的大小是 farthes ...

  8. CSS3_线性渐变_径向渐变----背景

    渐变的本质: 绘制一张背景图片,所以使用 background 或者 background-image background 的诸多属性,渐变都是可以使用的(repeat,position) 百分比: ...

  9. Canvas使用渐变之-线性渐变详解

    在canvas里面,除了使用纯色,我们还能把填充和笔触样式设置为渐变色:线性渐变和径向渐变. 线性渐变 createLinearGradient(x0,y0,x1,y1)  返回 CanvasGrad ...

随机推荐

  1. 有关extern的用法

    1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同.作为一种欲与C兼容的语言, C++保留了一部分过程式 ...

  2. Excel如何进行SVN

    KSFramework常见问题:Excel如何进行SVN协作.差异比较?   Excel如何进行SVN协作.差异比较? 嗯,这是一个令人困惑的问题.游戏开发.程序开发时,使用Excel可以添加文档.注 ...

  3. Spring Boot的一个测试用例

    package tk.mybatis.springboot.mapper; import org.junit.Assert; import org.junit.Test; import org.jun ...

  4. poj 3269 Building A New Barn

    #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> ...

  5. display:table标签来自动改变列宽 改变的同时table的整体宽度跟随变化

    发现公司里的所有分页功能都是通过display:talbe来实现的,但是用户最近说要让表格列宽可以拖动:所有我就寻找了好多的办法:网上找了很多的资料,但是都不是我要的效果因为他们都是列宽不改变要不就是 ...

  6. HTML5地理定位,百度地图API,知识点熟悉

    推断浏览器的兼容问题: IE9+支持地理定位,FF Chrome新版支持地理定位  if (navigator.geolocation) {        alert('支持地理定位');   } e ...

  7. STL-multimap

    转自:http://www.cnblogs.com/xiaoka/archive/2011/08/09/2132342.html multimap提供了可以一种可以有重复键值的STL map类型.其插 ...

  8. MVC Razor中 如何截断字符串

    有时候显示的内容过长,使用MVC编程时,如何截断显示的内容呢.我知道你肯定有很多办法这样做的,但是在学习MVC时,还是使用一些新的办法做吧> Razor 标记语法编程. @helper Trun ...

  9. js柯里化的一个应用

    听到同学说面试一道题目 add(1)(2)(3)(4); 查询了下资料  这是一个js里面的柯里化 现象 add_curry防范返回的是一个 retVal,并不是执行结果.这里的代码很想递归,但是不是 ...

  10. WIN7下OC开发环境的搭建

    折腾了一天,才搭建好OC的开发环境,用于OC学习.其中折腾劲儿我也是醉了.感谢我的破联想Ideapad Y470 坚持到了最后,感谢我的固态,感谢CCAV. 用到的工具及下载地址: 1.MAC10.1 ...