canvas中的线性渐变和径向渐变

这篇博客介绍了HTML5 Canvas中创建线性渐变和径向渐变的方法。通过`createLinearGradient`和`createRadialGradient`函数可以实现不同的渐变效果,再使用`addColorStop`设置颜色停止点来控制颜色分布。同时,还提到了`scale`和`rotate`方法用于调整图形的缩放和旋转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var b = a.getContext(“2d”);
var grd = b.createRadialGradient(75,50,5,90,60,100);//径向渐变,

context.createLinearGradient(x0,y0,x1,y1);

参数值
参数 描述
x0 渐变开始点的 x 坐标
y0 渐变开始点的 y 坐标
x1 渐变结束点的 x 坐标
y1 渐变结束点的 y 坐标

context.createLinearGradient(x0,y0,x1,y1);

同上;

addColorStop(stop,color);stop 介于 0.0 与 1.0 之间的值,//表示渐变中开始与结束之间的位置。//color 在结束位置显示的 CSS 颜色值
		<!DOCTYPE html>
		<html>
			<head>
				<meta charset="UTF-8">
				<title></title>
				
				<style>
						#mycanvas{
							border: 1px solid black;
							margin: 0px;
							padding: 0px;
						}
					</style>
					
			</head>
			
			<script type="text/javascript">
			
				function a()
						{
							var a = document.getElementById("mycanvas");
							var b = a.getContext("2d");
							var grd = b.createRadialGradient(75,50,5,90,60,100);
							grd.addColorStop(0,"black");
							grd.addColorStop(0.5,"red");
							grd.addColorStop(1,"white");
							b.fillStyle=grd;
							b.fillRect(10,10,150,100);
						}
						
					function a1()
					{
						var a = document.getElementById("mycanvas");
						var b = a.getContext("2d");
						var grd = b.createLinearGradient(0,0,170,0);
						grd.addColorStop(0,"black");//addColorStop(stop,color);stop	介于 0.0 与 1.0 之间的值,//
						//表示渐变中开始与结束之间的位置。//color	在结束位置显示的 CSS 颜色值
						grd.addColorStop(0.5,"red");
						grd.addColorStop(1,"white");
						b.fillStyle=grd;
						b.fillRect(10,10,150,100);
						
					}
			</script>
				
			<body onload="a()">
				
				
				<canvas height="800" width="1000" id="mycanvas">
					
				</canvas>
			</body>
			
		</html>

在这里插入图片描述
在这里插入图片描述

		<!DOCTYPE html>
		<html>
			<head>
				<meta charset="UTF-8">
				<title></title>
				
				<style>
						#mycanvas{
							border: 1px solid black;
							margin: 0px;
							padding: 0px;
						}
					</style>
					
			</head>
			
			<script type="text/javascript">
			
				function a()
						{
							var a = document.getElementById("mycanvas");
							var b = a.getContext("2d");
							b.fillStyle="#000000";
							b.fillRect(10,10,150,100);
							b.scale(2,2);
							b.fillStyle="chartreuse";
							b.fillRect(10,10,150,100);
						}
						
					function a1()
					{
						var a = document.getElementById("mycanvas");
						var b = a.getContext("2d");
						b.fillStyle="#000000";
						b.fillRect(10,10,150,100);
						b.rotate(20*Math.PI/180);
						b.fillStyle="chartreuse";
						b.fillRect(10,10,150,100);
					}
			</script>
				
			<body onload="a()">
				
				
				<canvas height="800" width="1000" id="mycanvas">
					
				</canvas>
			</body>
			
		</html>
scale(sx)

scale(sx, sy)

值节

sx
,表示缩放向量的横坐标。
sy
,表示缩放向量的纵坐标。如果未设置,则他的默认值被设置为 sx。 从而使得元素在保持原有形状下均等缩放

rotate(angle)

旋转的角度;顺时针;在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值