Canvas中如何填上渐变色的效果,代码是什么
Admin 2022-07-15 群英技术资讯 907 次浏览
我们要知道canvas提供了两个对象来创建渐变,渐变可以填充在矩形、文本、线条等。
canvas渐变可以分为线性渐变和径向渐变:
canvas创建线性渐变的函数是createLinearGradient(x,y,x1,y1)
canvas创建径向渐变的函数是createRadialGradient(x,y,r,x1,y1,r1)
下面我们就来分别看看canvas的线性渐变和径向渐变如何实现颜色的渐变。
首先来看一下canvas线性渐变:
线性渐变是以线性的模式来改变颜色,也就是水平,垂直或对角方向。
我们直接来看canvas线性渐变的例子:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <canvas id="myCanvas"></canvas> <script type="text/javascript"> var canvas=document.getElementById("myCanvas"); if(canvas && canvas.getContext){ var ctx=canvas.getContext("2d"); var grad=ctx.createLinearGradient(0,0,300,0); //创建一个渐变色线性对象 grad.addColorStop(0,"yellow"); //定义渐变色颜色 grad.addColorStop(1,"green"); ctx.fillStyle=grad; //设置fillStyle为当前的渐变对象 ctx.fillRect(0,0,300,100); //绘制渐变图形 } </script> </body> </html>
canvas线性渐变效果如下:
说明:上面这个canvas线性渐变的例子实现的是水平方向的渐变,如果想要实现垂直方向的渐变色只需要将参数y和y1设置为不同就可以了,想要实现对角方向的渐变色则需要将水平和垂直方向上的参数都设置为不同。(ps:具体的实现可以自己试试,这里就不多说了)
看完了线性渐变我们就来看一下canvas径向渐变的实现。
径向渐变是以圆形模式来改变颜色的,颜色以圆形的中心向外扩散。
我们也来直接看一个canvas径向渐变的例子:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <canvas id="myCanvas" width="400px" height="300px"></canvas> <script type="text/javascript"> var canvas=document.getElementById("myCanvas"); if(canvas && canvas.getContext){ var ctx=canvas.getContext("2d"); var grad=ctx.createRadialGradient(200,200,50,200,200,200) //创建一个渐变色线性对象 grad.addColorStop(0,"yellow"); //定义渐变色颜色 grad.addColorStop(1,"green"); ctx.fillStyle=grad; //设置fillStyle为当前的渐变对象 ctx.fillRect(0,0,400,400); //绘制渐变图形 } </script> </body> </html>
canvas径向渐变的效果如下:
需要注意的是:在绘制径向渐变时,可能会因为Canvas的宽度或者高度设置不合适,导致径向渐变显示不完全,需要考虑调整Canvas的尺寸。
说明:上述canvas径向渐变的代码中其实是两个圆,这两个圆的圆心分别是(x,y)和(x1,y1),半径则就是r和r1;最重要的是这两个圆必须设置不同的半径,形成一个内圆和一个外圆。这样渐变色就从一个圆形辐射到另一个圆形。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
两个div默认情况下就是垂直排列的,代码如下: divstyle=border:5pxsolidred;哈哈哈/divdivstyle=border:5pxsolidblack;呵呵呵/div 效果如图: 但是有时候因为你设置了别的属性,div垂直排列怎么都不行,那该怎么办呢?解决方案有两种: 方式一:如果你想在d
我们遇到加载,要么是UI框架中自带,要么就是百度,然后CV到项目中?但是,自己实现的时候,又会没有思路。下面本篇文章就来给大家分享10个纯 CSS 实现的 Loading 效果,希望对大家有所帮助!
这篇文章给大家分享的是CSS向JS传参的内容,有时候我们需要通过CSS向JS传参,那么具体什么时候需要这样做呢?实现方法又是什么?文中介绍的很详细,感兴趣的朋友接下来一起跟随小编看看吧。
你知道在css中怎么实现完美圆角框吗?其实这个技巧说难也不难,下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家,下面我们一起来了解看看吧。
本文主要介绍了Canvas如何做个雪花屏版404的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008