渐变

渐变由 canvasGradient 实例表示

要创建一个渐变对象需要调用 createLinearGradient() 方法

该方法接收四个参数:

  1. 起点的x坐标
  2. 起点的y坐标
  3. 终点的x坐标
  4. 终点的y坐标

调用该方法后会创建一个指定大小的实例,并返回一个 CanvasGradient 实例

创建渐变对象后需要指定色标,通过 addColorStop()

该方法接收两个参数:

  • 色标位置
  • CSS颜色值

如:

var gradient = context.createLinearGradient(30,30,70,70);

gradient.addColorStop(0,"white");
gradient.addColorStop(1,"black");

渐变对象创建完成后就可以将渐变对象赋值给 fillStyle strokeStyle 来通过渐变绘制图像

// 绘制渐变矩形
context.fillStyle = gradient;
context.fillRect(30,30,50,50);

而如果需要使用径向渐变,则需要使用 createRadialGradient() 方法

该方法接收6个参数:

  1. 起点圆的圆心x坐标
  2. 起点圆的圆心y坐标
  3. 起点圆的圆半径
  4. 终点圆的圆心x坐标
  5. 终点圆的圆心y坐标
  6. 终点圆的圆半径
var gradient = context.createRadialGradient(30,30.10,30,30,20);

gradient.addColorStop(0,"white");
gradient.addColorStop(1,"black"); context.fillStyle = gradient;
context.fillRect(30,30,50,50);

Javascript高级编程学习笔记(92)—— Canvas(9) 渐变的更多相关文章

  1. Javascript高级编程学习笔记(94)—— Canvas(11) 合成

    合成 除了之前介绍的属性之外,还有两个属性会应用到整个2d上下文中; globalAlpha 用于指定所有绘制的透明度 globalComposition 用于表示后绘制的图形怎样与先绘制的图形进行结 ...

  2. Javascript高级编程学习笔记(93)—— Canvas(10) 模式及图像数据

    模式 模式其实就是重复的图像,用来填充或描边图形 要创建一个新模式,可以调用 createPattern()并传入两个参数 一个HTML img元素 用于表示如何重复的字符串 "repeat ...

  3. Javascript高级编程学习笔记(90)—— Canvas(7) 绘制图像

    绘制图像 2D绘图上下文内置了对图像的支持 如果希望将一幅图绘制到画布上,可以使用 drawImage() 的方法 该方法有三种不同的参数数组合以对应不同的应用场景 将<img>绘制到画布 ...

  4. Javascript高级编程学习笔记(89)—— Canvas(6) 变换

    变换 通过上下文的变化,可以对图像进行处理后再将其绘制到画布上 当我们创建上下文时,会以默认值初始化变化矩阵,在默认的变换矩阵下所有处理都按描述直接绘制. 而当我们为上下文应用变换时,会导致使用不同的 ...

  5. Javascript高级编程学习笔记(88)—— Canvas(5)绘制文本

    绘制文本 同样的,canvas也为绘制文本提供了相应的方法. 2D上下文提供的文本绘制方法主要有两个: fillText() strokeText() 这两个方法都接受四个参数 要绘制的文本字符串 绘 ...

  6. Javascript高级编程学习笔记(87)—— Canvas(4)绘制路径

    绘制路径 2D上下文支持许多在画布上绘制路径的方法 通过路径可以创造出复杂的形状和线条,要绘制路径首先必须调用beginPath()方法,表示开始绘制路径 然后再通过下列的方法绘制路径: arc(x, ...

  7. Javascript高级编程学习笔记(86)—— Canvas(3)绘制矩形

    绘制矩形 矩形是唯一一种可以直接在2D上下文中绘制的形状. 与矩形有关的方法包括: fillRect() strokeRect() clearRect() 上述方法都接收四个参数: 绘制矩形的 X 坐 ...

  8. Javascript高级编程学习笔记(85)—— Canvas(2)2D上下文

    2D上下文 使用2D上下文提供的方法可以绘制简单的2D图形,如矩形,弧线和路径; 2D上下文的坐标开始域<canvas>元素的左上角,原点坐标为(0,0) 后续所有操作的计算都基于原点,x ...

  9. Javascript高级编程学习笔记(84)—— Canvas(1)基本用法

    Canvas绘图 Canvas自HTML5引入后,由于其炫酷的效果成为HTML5新增功能中最受欢迎的部分 Canvas元素通过在页面中设定一个区域,然后就可以使用JS在其中绘制图形 <canva ...

随机推荐

  1. 《剑指offer》二叉树的深度

    本题来自<剑指offer> 反转链表 题目: 思路: C++ Code: Python Code: 总结:

  2. <!特别的一天>

    <!DOCTYPE html> <html> <head> <meta charset="gb2312/"> <title&g ...

  3. js object数据类型

    1.object数据类型,[可以]认为JavaScript中顶级数据类型.在JavaScript绝大多数 高级类型对象都是object类型 2.如何创建一个object类型对象 1) 通过调用Obje ...

  4. MBR分区操作-增加、扩展、删除

    MBR分区操作-增加.扩展.删除 GPT分区参考 http://www.blogjava.net/haha1903/archive/2011/12/21/366942.html l  fdisk 显示 ...

  5. 工具系列-idea破解

    >>>>>>>>>>>>>>>>>>>>>>>>> ...

  6. scss/less语法以及在vue项目中的使用(转载)

    1.scss与less都是css的预处理器,首先我们的明白为什么要用scss与less,因为css只是一种标记语言,其中并没有函数变量之类的,所以当写复杂的样式时必然存在局限性,不灵活,而scss与l ...

  7. sqlserver 删除表结构

    sqlserver-----------删除表结构use IndividualTaxGOdeclare @sql varchar(8000)while (select count(*) from sy ...

  8. asp.net core1.1的PlatformAbstraction源码

    PlatformAbstraction类在现在的asp.net core中已经废弃了,但是此类的设计还是不错的,可以借鉴,源码如下: namespace Microsoft.Extensions.Pl ...

  9. 十分钟了解HTTPS

    一.为什么要用HTTPS——HTTP协议的缺陷 通信使用明文(不加密),内容可能会被窃听 不能验证通信方的身份,所以请求和响应都有可能是攻击者发送的 数据包在由A到B的过程中,可能经历很多次路由转发, ...

  10. 【转】JY 博客

    http://www.lovewebgames.com/demo.html http://www.lovewebgames.com/