canvas径向渐变详解
1,创建径向渐变对象 createRadialGradient(x0,y0,r0,x1,y1,r1),其中x0,y0,r0分别为起始圆的位置坐标和半径,x1,y1,r1为终止圆的坐标和半径。
2,设置渐变颜色 addColorStop(position,color),position为从0.0~1.0之间的值,表示渐变的相对位置;color是一个有效的css颜色值。
3,设置画笔颜色为该径向渐变对象。
4,画图。
var c = document.getElementById('mycanvas').getContext('2d');
var radial = c.createRadialGradient(100,100,20,120,120,50);
radial.addColorStop(0,'#EE84AA');
radial.addColorStop(0.9,'#FF0188'); // 颜色值 #FF0188 == rgba(255,1,136,1)
radial.addColorStop(1,'rgba(255,1,136,0)');
c.fillStyle = radial;
c.fillRect(0,0,500,500);
效果图如下,这个立体的球形。



var c = document.getElementById('mycanvas').getContext('2d');
var radial = c.createRadialGradient(100,100,20,120,120,50);
radial.addColorStop(0,'#EE84AA');
radial.addColorStop(0.9,'#FF0188');
radial.addColorStop(1,'rgba(255,1,136,0)');
c.fillStyle = radial;
c.fillRect(0,0,500,500);
//以下是添加的辅助线
c.arc(100,100,20,0,2*Math.PI);
c.moveTo(170,120);
c.arc(120,120,50,0,2*Math.PI);
c.stroke();
效果图:

var radial = c.createRadialGradient(80,80,20,120,120,50);
radial.addColorStop(0,'#EE84AA');
radial.addColorStop(0.9,'#FF0188');
radial.addColorStop(1,'rgba(255,1,136,0)'); c.fillStyle = radial;
c.fillRect(0,0,500,500); //以下是添加的辅助线
c.arc(80,80,20,0,2*Math.PI);
c.moveTo(170,120);
c.arc(120,120,50,0,2*Math.PI);
c.stroke();
效果图:

var radial = c.createRadialGradient(100,100,20,130,130,50);
radial.addColorStop(0,'#EE84AA');
radial.addColorStop(0.9,'#FF0188');
radial.addColorStop(1,'rgba(255,1,136,0)'); c.fillStyle = radial;
c.fillRect(0,0,500,500); //以下是添加的辅助线
c.arc(100,100,20,0,2*Math.PI);
c.moveTo(180,130);
c.arc(130,130,50,0,2*Math.PI);
c.stroke();
效果图:

var radial = c.createRadialGradient(70,70,20,130,130,50);
radial.addColorStop(0,'#EE84AA');
radial.addColorStop(0.9,'#FF0188');
radial.addColorStop(1,'rgba(255,1,136,0)'); c.fillStyle = radial;
c.fillRect(0,0,500,500); //以下是添加的辅助线
c.arc(70,70,20,0,2*Math.PI);
c.moveTo(180,130);
c.arc(130,130,50,0,2*Math.PI);
c.stroke();
效果图,so cute~


解第一题过程中为了避免这个问题的干扰,设置了大大的着色区域c.fillRect(0,0,500,500);
var radial = c.createRadialGradient(100,100,20,120,120,50);
radial.addColorStop(0,'#EE84AA');
radial.addColorStop(0.9,'#FF0188');
radial.addColorStop(1,'rgba(255,1,136,0)'); c.fillStyle = radial;
c.arc(80,100,60,0,2*Math.PI);
c.fill(); //以下是添加的辅助线
c.moveTo(170,120);
c.arc(120,120,50,0,2*Math.PI);
c.stroke();
辅助线效果图:

上面较大的圆为绘制区域,下面小点的是径向渐变圆。着色区域是两个圆相交的部分。
相关参考地址:
canvas径向渐变详解的更多相关文章
- Canvas使用渐变之-径向渐变详解
创建径向渐变使用 createRadialGrdient(x0,y0,r0,x1,y1,r1) 一共六个参数,分别代表: 起点的圆心坐标(第一个和第二个参数), 起点园的半径(第三个参数), 终点 ...
- css3径向渐变详解-遁地龙卷风
(-1)写在前面 我用的是chrome49,如果你用的不是.可以尝试换下浏览器前缀.IE在这方面的实现又特例独行了.不想提及-,这篇是为后续做准备. (0)快速使用 background-image: ...
- canvas绘图API详解
canvas绘图API详解 1.context的状态 矩阵变换属性 当前剪辑区域 context的其他状态属性: strokeStyle, fillStyle, globalAlpha, lineWi ...
- canvas arcTo()用法详解 – CodePlayer
canvas arcTo()用法详解 – CodePlayer canvas arcTo()用法详解
- Android中Canvas绘图基础详解(附源码下载) (转)
Android中Canvas绘图基础详解(附源码下载) 原文链接 http://blog.csdn.net/iispring/article/details/49770651 AndroidCa ...
- Canvas使用渐变之-线性渐变详解
在canvas里面,除了使用纯色,我们还能把填充和笔触样式设置为渐变色:线性渐变和径向渐变. 线性渐变 createLinearGradient(x0,y0,x1,y1) 返回 CanvasGrad ...
- 第157天:canvas基础知识详解
目录 一.canvas简介 1.1 什么是canvas?(了解) 1.2 canvas主要应用的领域(了解) 二.canvas绘图基础 2.0 sublime配置canvas插件(推荐) 2.1 Ca ...
- 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理
[微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...
- html5 canvas 径向渐变2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- SSM框架整合基本操作
1.首先导入各种需要的配置包,在这里个人的习惯就是先导入mybatis相关包,然后通过编程软件集成一个spring3.0或者spring3.1进来并选择里面相应的包,这样就不需要我们自己去导入相应的s ...
- error C2589: “(”: “::”右边的非法标记 error C2059: 语法错误 : “::
1. 错误输出 ./zlibrary/ui/src/win32/w32widgets/W32VBorderBox.cpp(114) : error C2589: “(”: “::”右边的非法标记 ...
- 为什么在Windows有两个临时文件夹的环境变量Temp和Tmp?
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:为什么在Windows有两个临时文件夹的环境变量Temp和Tmp?.
- 《机器学习实战》——K近邻算法
三要素:距离度量.k值选择.分类决策 原理: (1) 输入点A,输入已知分类的数据集data (2) 求A与数据集中每个点的距离,归一化,并排序,选择距离最近的前K个点 (3) K个点进行投票,票数最 ...
- 用Regex类计算一个字符串出现次数是最好方法【转载】
我的一个朋友问我,怎么在c#或vb.net中,计算一个字符串中查找另一个字符串中出现的次数,他说在网上打了好多方法,我看了一下,有的是用replace的方法去实现,这种方法不是太好,占资源太大了.其实 ...
- STM32 驱动12864液晶显示汉字、图片、画点、横线、竖线、斜线
我做本实验的软件平台为MDK软件,选用STM32VET6,12864液晶屏5v供电采用并行接法.之前本来想网上找一个现成的程序实验一下,但都没找到合适的,于是就自己编写了一个,最终可在12864液晶屏 ...
- JSLink to render the list to show people detail info with picture
I create a custom list, and create a poeple column to store poeple detail info with picture in this ...
- Android用悬浮按钮实现翻页效果
今天给大家分享下自己用悬浮按钮点击实现翻页效果的例子. 首先,一个按钮要实现悬浮,就要用到系统顶级窗口相关的WindowManager,WindowManager.LayoutParams.那么在An ...
- linux内存管理解析1----linux物理,线性内存布局及页表的初始化
主要议题: 1分页,分段模式及实模式 2Linux分页 3linux内存线性地址空间布局及物理内存空间布局 4linux页表初始化及代码解析 1.1.1内存寻址和保护模式 在X86平台上,内存控制单元 ...
- phpcms 源码分析三:common.inc.php
这次是逆雪寒分析common.inc.php的数据库部分: <?php // 包含数据库操作类,下章详说 require PHPCMS_ROOT.'/include/'.$db_file.'.c ...