canvas放射性渐变填充

今天在学习canvas时,遇到canvas的fillstyle有一个createRadialGradient()方法,创建放射性渐变。

上代码:

<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.
</canvas>
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var grd=ctx.createRadialGradient(70,70,0,90,90,30);
grd.addColorStop(0,"red");
grd.addColorStop(1,"white");
ctx.fillStyle=grd;
ctx.fillRect(0,0,300,150);
</script>
</body>
</html>

其中createRadialGradient有五个参数:

var grd=ctx.createRadialGradient(70,70,0,90,90,30);

分别为:开始圆的 X 坐标、开始圆的 Y 坐标、开始圆的半径、结束圆的 X 坐标、结束圆的 Y 坐标、结束圆的半径。(坐标都是相对于canvas画布的值)

ctx.fillRect(0,0,300,150);

这一句的几个参数是需要填充的位置: 矩形左上角 X 坐标、 Y 坐标、 右下角 X 坐标、Y 坐标。(上次编辑是理解错误,后两个参数不对,w3school上解释如下图:)

正常情况下,开始圆的圆心在结束圆范围内时,效果入下:

var grd=ctx.createRadialGradient(70,70,0,90,90,50);

开始圆的圆心偏移,中间的深色部分偏移。偏移到结束圆边界时,效果入下:

var grd=ctx.createRadialGradient(55,55,0,90,90,50);

当开始圆圆心坐标位于结束圆范围外时,出现特殊现象:

var grd=ctx.createRadialGradient(40,40,0,90,90,50);

偏移越多,效果越明显:

var grd=ctx.createRadialGradient(20,20,0,90,90,50);

一开始看到这个效果感到很奇怪。弄明白后觉得可能以后用得到,记录一下。

 

转载于:https://www.cnblogs.com/eoff/p/5068135.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值