html5创建圆形渐变,HTML5 canvas createRadialGradient()放射状/圆形渐变

定义和用法

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

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

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

原理示意图

28c504f19e11c6a3295c7fc3bc66b369.png

JavaScript 语法:

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

参数值

参数

描述

x0

渐变的开始圆的 x 坐标

y0

渐变的开始圆的 y 坐标

r0

开始圆的半径

x1

渐变的结束圆的 x 坐标

y1

渐变的结束圆的 y 坐标

r1

结束圆的半径

实例:

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);

7bc69bf14dde2edc48caaadc64443233.png

浏览器支持

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

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

原理示意说明:

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);

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

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

866c0c9e20aa9a61cb789c23f30705cd.png

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

cda4c157491c33786667746c85afa6e6.png

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

e1d4ce1e44896819c16234548f5a2e68.png

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

66284deb09314165d8c58d9a51417c32.png

ad8ad42283389c0b1ad6c62312321282.png

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

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

96db7bc78b09fac70840198f7581c6d2.png

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

6d53f328f0e2afb367af6f4c19e5de76.png

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

325c6a75038ca8dd4f7839a98e8988e6.png

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

昨天我们分享了一款基于HTML5的线性图表应用,效果非常不错,可以看在线DEMO或者实现教程.今天我们继续来分享一款基于HTML5的网页图表,它也是利用Canvas绘制的,但是和前面不同的是,这款图表 ...

html5 canvas 奇怪的形状垂直渐变

//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

html5 canvas绘制矩形和圆形

...

HTML5<canvas>标签:使用canvas元素在网页上绘制渐变和图像(2)

详细解释HTML5 Canvas中渐进填充的参数设置与使用,Canvas中透明度的设置与使用,结合渐进填充与透明度支持,实现图像的Mask效果. 一:渐进填充(Gradient Fill) Canva ...

html5 Canvas API

详细内容请点击 1.HTML Canvas API有两方面优势可以弥补:首先,不需要将所绘制图像中的每个图元当做对象存储,因此执行性能非常好:其次,在其他编程语言现有的优秀二维绘图API的基础上实现C ...

HTML5 程序设计 - 使用HTML5 Canvas API

请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...

[js高手之路] html5 canvas系列教程 - 线形渐变,径向渐变与阴影设置

接着上文[js高手之路] html5 canvas系列教程 - 像素操作(反色,黑白,亮度,复古,蒙版,透明)继续. 一.线形渐变 线形渐变指的是一条直线上发生的渐变. 用法: var linear ...

html5 canvas 填充渐变形状

ello"; // //System.out.println(str1); char c[ ...

[ActionScript 3] 本地安全沙箱问题最快解决方法

使用FLex4.0时, Chrome等浏览器会报 安全水箱问题.....   解决方案: 打开flash全局安全配置面板并在页面中的配置面板中添加可信任的swf文件或者文件夹: 若是记不住全局安全配置 ...

BS_OWNERDRAW风格的作用和例子,值得研究~

TBitBtn就是一个例子: procedure TBitBtn.CreateParams(var Params: TCreateParams); begin inherited CreatePara ...

PHPStorm 配置命名空间

文件-设置-Directories 选中:application     点击顶部:Sources,右侧会出现 Source Floders 配置项 点击:p进行设置 输入app\

HTTP请求时间参数设置

1. JSON 2019-01-18 18:36:35 2. Postman 2019/01/18 18:36:35

重定向,/dev/null, 1>, 2>什么意思?

文件描述符我们常见的就是系统预留的0,1和2这三个,他们的意义分别有如下对应关系: 0 —— stdin(标准输入) 1 —— stdout (标准输出) 2 —— stderr (标准错误) 其中, ...

std::lexicographical_compare函数的使用

按照词典序比较前者是否小于后者. 当序列按照字典序比较小于后者序列,则返回true.否则,返回false. 所谓字典 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值