问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在canvas上画一个颜色渐变的方形

发布网友 发布时间:2022-04-19 22:57

我来回答

2个回答

懂视网 时间:2022-04-20 03:19

在我们打开某个网页的时候,可能会看到有的页面中有颜色的渐变,感觉很好看,那么,这种渐变色是如何实现的呢?所谓渐变色其实就是颜色之间的过渡,而html5 Canvas渐变是一种用于填充或描边图形的颜色模式,所以,利用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线性渐变效果如下:

2345截图20180926111547.png

说明:上面这个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径向渐变的效果如下:

2345截图20180926112818.png

需要注意的是:在绘制径向渐变时,可能会因为Canvas的宽度或者高度设置不合适,导致径向渐变显示不完全,需要考虑调整Canvas的尺寸。

说明:上述canvas径向渐变的代码中其实是两个圆,这两个圆的圆心分别是(x,y)和(x1,y1),半径则就是r和r1;最重要的是这两个圆必须设置不同的半径,形成一个内圆和一个外圆。这样渐变色就从一个圆形辐射到另一个圆形。

本篇文章到这里全部就结束了,关于canvas的更多内容大家可以参考HTML5开发手册。

热心网友 时间:2022-04-20 00:27

用drawline画出来
颜色你懂的,~如果你认可我的回答,请及时点击【采纳为满意回答】按钮
~~手机提问的朋友在客户端右上角评价点【满意】即可。
~你的采纳是我前进的动力
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
word绘制施工进度横道图!表格好了,中间的横道杂往上打!!!急急急_百 ... 如何用 SWOT 模型进行自我分析? 求朋友圈、公众号文案排版工具? 写文案用什么软件 回复文案的软件推荐 学习挖掘机需要什么条件 学挖机新手从哪里学 挖掘机学习都学什么 新手学开挖掘机先学哪些 手工麦芽糖怎么做? 麦芽糖怎么做小零食 谁能帮帮我呀!!关于设计班徽!!十分感谢! 有谁会做班徽呢就是个LOGO。。。大神 在哪里。 王冕传 安阳韩性闻而异之。译文 急急急急急急急急急急 (设计班徽)高手们小弟遇到了前所未有的困难,请伸出你们的援助之手 帮我一把 文言文《雁奴》的翻译 王冕求学文言文 初二五班的班徽怎么设计? 煮石山农王冕的全文翻译 《吴起守信》文言文翻译及注释是什么? 请问地砖有哪几种品种 目前市面上瓷砖的种类有哪些 文言文启蒙读本的宋濂苦学译文 目前市面上瓷砖的种类有哪些啊? 宋文宪公嗜学文言文翻译? 手机使用中屏幕出现闪屏花屏怎么办? 案外人对裁定驳回的执行异议能否提起诉讼 案件执行完毕,案外人提出异议,法院如何处理? 执行中案外人提出执行异议,法院怎样做 如何审查案外人执行异议之诉的诉讼请求要件 我的手脚起了很多红点包,而且很痒。 关于外贸有哪些岗位 外贸中大概有多少职位 外贸工作有那些种类? 外贸类工作有哪些 为什么地球会有磁场,地球的磁场是如何产生的? 黔南民族职业技术学校快递地址怎么写? 黔南民族职业技术学院位于哪里 “上九潜龙勿用”这句话是什么意思? “上九潜龙勿用”是什么意思?出处在哪? 上九潜龙勿用是什么意思 情人节送女朋友什么礼物会显得浪漫? 例假期间为什么会有褐色的 月经有时来了颜色是褐色的为什么? 米字旁的汉字有那些? 米字旁的有那些字 夜晶电视一打开屏幕就一闪一闪的,主屏不能显示出来是什么原因? 米字旁上下结构的字有哪些米字旁上下结构的字有哪些? 梦到带着儿子被追逃跑 为什么电视节目中观看电脑荧屏会感觉闪烁? 梦到自己抱孩子和老公一起跑有人追