用html5颜色自动渐变,HTML5 - Canvas的使用样例13(使用渐变色进行填充)

通过多次调用 addColorStop() 方法,我们可以创建多种颜色构成的渐变。

18ba79df4c97189f75924220a3196f16.png

var canvas = document.getElementById("myCanvas");

var context = canvas.getContext("2d");

//边框线条宽度

context.lineWidth = 2;

//边框线条颜色

context.strokeStyle = "#c0c0c0";

//绘制路径

context.moveTo(200, 50);

context.lineTo(100, 150);

context.lineTo(300,150);

context.closePath();

//创建一个从(150,0)到(250,0)的渐变

var gradient = context.createLinearGradient(150, 0, 250, 0);

//添加多种颜色

gradient.addColorStop(0, "magenta");

gradient.addColorStop(0.25, "blue");

gradient.addColorStop(0.5, "green");

gradient.addColorStop(0.75, "yellow");

gradient.addColorStop(1, "red");

//填充渐变色

context.fillStyle = gradient;

context.fill();

context.stroke();

2,放射性渐变

(1)要创建放射性渐变,我需要使用 createRadialGradient()指定两个圆。因为放射性渐变就是颜色从一个小圆过渡到一个更大、包含它的圆。

3c3c600c79b5dce86e3171715c0d6543.png

var canvas = document.getElementById("myCanvas");

var context = canvas.getContext("2d");

//边框线条宽度

context.lineWidth = 2;

//边框线条颜色

context.strokeStyle = "#c0c0c0";

//绘制路径

context.moveTo(200, 50);

context.lineTo(100, 150);

context.lineTo(300,150);

context.closePath();

//渐变起点是坐标为(200,100),半径10的圆。终点是相同圆心坐标,半径50的圆

var gradient = context.createRadialGradient(200, 100, 10, 200, 100, 50);

//添加两种颜色

gradient.addColorStop(0, "magenta");

gradient.addColorStop(1, "yellow");

//填充渐变色

context.fillStyle = gradient;

context.fill();

context.stroke();

(2)同样通过多次调用 addColorStop() 方法,可以实现多色放射性渐变效果。

f592c6473a0ba0ba08e21e3a9fb0729f.png

var canvas = document.getElementById("myCanvas");

var context = canvas.getContext("2d");

//边框线条宽度

context.lineWidth = 2;

//边框线条颜色

context.strokeStyle = "#c0c0c0";

//绘制路径

context.moveTo(200, 50);

context.lineTo(100, 150);

context.lineTo(300,150);

context.closePath();

//渐变起点是坐标为(200,100),半径10的圆。终点是相同圆心坐标,半径50的圆

var gradient = context.createRadialGradient(200, 100, 10, 200, 100, 50);

//添加多种颜色

gradient.addColorStop(0, "magenta");

gradient.addColorStop(0.25, "blue");

gradient.addColorStop(0.5, "green");

gradient.addColorStop(0.75, "yellow");

gradient.addColorStop(1, "red");

//填充渐变色

context.fillStyle = gradient;

context.fill();

context.stroke();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值