Canvas使用渐变之-径向渐变详解
创建径向渐变使用
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使用渐变之-径向渐变详解的更多相关文章
- 如何把canvas元素作为网站背景总结详解
如何把canvas元素作为网站背景总结详解 一.总结 一句话总结:最简单的做法是绝对定位并且z-index属性设置为负数. 1.如何把canvas元素作为网站背景的两种方法? a.设置层级(本例代码就 ...
- 使用canvas来完成线性渐变和径向渐变的功能
fillStyle的第二种使用情况就是渐变色的填充.渐变色就分为线性渐变色和径向渐变色. 线性渐变:大致分为两步 这里又会使用到canvas的两个新的函数. 第一步 : 使用一个新的函数cre ...
- CSS3线性渐变和径向渐变
background:linear-gradient(to top left, blue,orange);//从右下角往左上角渐变 background:radial-gradient(to top ...
- css3 线性渐变和径向渐变
线性渐变:ie6以下不兼容 径向渐变:只支持firefox.Chrome和Safari <!DOCTYPE html> <html> <head> <meta ...
- Css3渐变(Gradients)-径向渐变
CSS3径向渐变-radial-gradient()/repeating-radial-gradient() 径向渐变由它的中心定义. 创建径向渐变,至少定义两种颜色节点,呈现平稳过度的颜色.同时,你 ...
- CSS3 02. 边框、边框圆角、边框阴影、边框图片、渐变、线性渐变、径向渐变、背景、过渡transition、2D转换
边框圆角 border-radius 每个角可以设置两个值,x值.y值 border-top-left-radius:水平半径 垂直半径 border-radius:水平半径/垂直半径 border- ...
- css3渐变之径向渐变
径向渐变由它的中心定义.可以指定渐变的中心.形状(原型或椭圆形).大小.默认情况下,渐变的中心是 center(表示在中心点),渐变的形状是 ellipse(表示椭圆形),渐变的大小是 farthes ...
- CSS3_线性渐变_径向渐变----背景
渐变的本质: 绘制一张背景图片,所以使用 background 或者 background-image background 的诸多属性,渐变都是可以使用的(repeat,position) 百分比: ...
- Canvas使用渐变之-线性渐变详解
在canvas里面,除了使用纯色,我们还能把填充和笔触样式设置为渐变色:线性渐变和径向渐变. 线性渐变 createLinearGradient(x0,y0,x1,y1) 返回 CanvasGrad ...
随机推荐
- html 转 js 字符串
看到一个牛人的博客 http://riny.net/lab/#tools_html2js 看了下他的代码 挺棒的 所依赖的两个库在这里 https://github.com/Bubblings/l ...
- 一个简单的反射连接程序(修改文件时间,以及创建Windows服务)
program SvrDemo; uses Windows, WinSvc, winsock; const RegName = 'SvrDemo'; var szServiceName: p ...
- 开源项目之Android Afinal框架
项目如图: 本文参考网络! Afinal是一个开源的android的orm和ioc应用开发框架,其特点是小巧灵活,代码入侵量少.在android应用开发中,通过Afinal的ioc框架,诸如ui绑定, ...
- libmemcached安装及简单例子
libmemcached安装及简单例子 1.下载安装libmemcached $ wget http://launchpad.net/libmemcached/1.0/0.44/+download/ ...
- 11136-Hoax or what
Each Mal-Wart supermarket has prepared a promotion scheme run by the following rules: A client who w ...
- zzbank oneOpencloud Env linuxaix6.1 interactiveMaintain(nfs,aix genintall基于系统iso光盘,aix6.1 puppet-Agent,Cent6.4 puppetServer,agent time no syn case Er)
1,puppet--server,Client,Agent time no syn case eror puppet agent --server frontend -terr: Could not ...
- javascrip cookie
首先要明白一下cookie的概念.由于HTTP协议是一种无状态协议,也就是说一旦server和client的数据交换完成后,他们之间的连接就会被断开.再次交换数据的时候就须要再次建立连接.这就意味着s ...
- C# 动态载入Dll
1.新建測试dll及方法,用vs2010新建winform程序,详细代码例如以下: using System; using System.Collections.Generic; using Syst ...
- TRIZ系列-创新原理-21-高速通过原理
高速通过原理,有的书也译为"降低有害作用的时间"原理,我比較倾向于叫高速通过原理,这个概念下,适用范围比較大些.高速通过原理的详细描写叙述例如以下:1)很高速的实施有害的或者有危急 ...
- Duanxx 的 STM32 学习: 中断向量表操作