Canvas中如何填上渐变色的效果,代码是什么
Admin 2022-07-15 群英技术资讯 1290 次浏览
今天就跟大家聊聊有关“Canvas中如何填上渐变色的效果,代码是什么”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“Canvas中如何填上渐变色的效果,代码是什么”文章能对大家有帮助。我们要知道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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
HTML怎样获取标签值,代码怎样写?下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家,下面我们一起来了解看看吧。
这篇文章主要介绍了在html页面中取得session中的值的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
这篇文章主要介绍了使用HTML和CSS实现的标签云效果(附demo),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这篇文章主要介绍了CSS 实现侧滑显示留言面板的网页组件功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
IE6下伪类hover失效怎么办?是不是有很多用户们都被这个问题困扰过呢?下文有详解方法和实例,内容详细,逻辑清晰,有需要的朋友可以参考,希望大家阅读完这篇文章后能有所收获,那么下面就一起来了解一下吧。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008