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/ ...
随机推荐
- Android Studio更新失败
解决方案: Windows平台下 如果是运行的Android studio是32位的需要在修改一下文件: 在andriod studio的启动目录下.找到studio.exe.vmoptions这个文 ...
- oracle 表空管理方式(LMT)、ASSM段管理方式、一级位图块、二级位图块、三级位图块。
今天是2013-12-16,今天和明天是我学习oracle生涯中一个特殊的日子.今天晚上进行了一下表空间管理方式的学习,在此记录一下笔记. 对于oracle数据库最小i/0单位是数据块,最想分配空间单 ...
- SQL注入专题
SQL注入专题--整理帖 SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别, 所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被 ...
- asp.net中为什么修改了配置文件后我们不需要重启IIS
本文转载:http://blog.itpub.net/12639172/viewspace-659819/ 大家知道,asp.net中,如果我们修改了配置文件只要把它保存之后,就会立刻反应到程序中, ...
- 【C#】Entity Framework 增删改查和事务操作
1.增加对象 DbEntity db = new DbEntity(); //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长主键外),如果不赋值,则会数据库中会被设置为NULL(注意是否 ...
- linux下lighttpdserver的具体安装步骤 以及对flv流媒体的支持配置
准备条件: a,创建/usr/local/lighttpd文件夹,用于安装lighttpd b,创建lighttpd用户password为lighttpd账号,用于lighttpd的启动用户 c,安装 ...
- Redis学习手册(实例代码)
在之前的博客中已经非常详细的介绍了Redis的各种操作命令.运行机制和服务器初始化参数配置.本篇博客是该系列博客中的最后一篇,在这里将给出基于Redis客户端组件访问并操作Redis服务器的代码示例. ...
- cglib源码分析(四):cglib 动态代理原理分析
本文分下面三个部分来分析cglib动态代理的原理. cglib 动态代理示例 代理类分析 Fastclass 机制分析 一.cglib 动态代理示例 public class Target{ publ ...
- 转:ORACLE制造方法的比较
转自:http://blog.itpub.net/133041/viewspace-438549/ 1.离散制造. 2.重复制造 3.流式制造 Oracle Applications 支持离散.项目. ...
- JS 时间与时间戳的相互转换
<script type="text/javascript"> var time = "2015-04-22 21:41:43";//2015-4- ...