08Canvas——填充和渐变

1、填充

fillStyle 属性

使用 fillStyle 属性,设置或返回用于填充绘画的颜色、渐变或模式。语法为:

ctx.fillStyle = color | gradient | pattern;

参数说明:

  • color 表示绘图填充的颜色。默认值是 #000000。
  • gradient 表示用于填充绘图的渐变对象(线性或放射性)。
  • pattern 表示用于填充绘图的 pattern 对象。

例子:
绘制实心矩形,填充颜色为红色。

<body>
    <!--添加canvas元素,设置画布的大小-->
    <canvas id="mycanvas" width="520px" height="1314px">
        对不起,你的浏览器不支持canvas
    </canvas>

    <script type="text/javascript">
        //获取canvas元素
        var myCanvas = document.getElementById('mycanvas');
        //获取Context上下文
        var ctx = myCanvas.getContext('2d');
        //填充为红色
        ctx.fillStyle = 'red';
        //绘制实心矩形
        ctx.fillRect(10, 10, 100, 200);
    </script>
</body>

在这里插入图片描述

fill() 方法

使用 fill() 方法填充当前的图像(路径)。默认颜色是黑色。填充另一种颜色/渐变使用 fillStyle 属性。
语法为:

ctx.fill();

注:如果路径未关闭,那么 fill() 方法会从路径结束点到开始点之间添加一条线,以关闭该路径,然后填充该路径。

<body>
    <!--添加canvas元素,设置画布的大小-->
    <canvas id="mycanvas" width="520px" height="1314px">
        对不起,你的浏览器不支持canvas
    </canvas>

    <script type="text/javascript">
        //获取canvas元素
        var myCanvas = document.getElementById('mycanvas');
        //获取Context上下文
        var ctx = myCanvas.getContext('2d');
        //填充为红色
        ctx.rect(20,20,150,100)
        ctx.fillStyle = 'red';
        //绘制实心矩形
        ctx.fill();
    </script>
</body>

在这里插入图片描述

2、渐变

线性渐变

使用 createLinearGradient() 方法创建线性渐变。语法为:

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

参数说明:

  • x0 表示渐变开始点的 x 坐标。
  • y0 表示渐变开始点的 y 坐标。
  • x1 表示渐变结束点的 x 坐标。
  • y1 表示渐变结束点的 y 坐标。

使用 addColorStop() 方法规定渐变对象中的颜色和停止位置。语法为:

gradient.addColorStop(stop, color);

参数说明:

  • stop 表示渐变中开始与结束之间的位置。是介于 0.0 与 1.0 之间的值。
  • color 表示在结束位置显示的 CSS 颜色值。
    注:addColorStop() 方法与 createLinearGradient()createRadialGradient() 一起使用。我们可以多次调用 addColorStop() 方法来改变渐变。如果我们不对 gradient 对象使用该方法,那么渐变将不可见。为了获得可见的渐变,至少需要创建一个色标。
<body>
    <!--添加canvas元素,设置画布的大小-->
    <canvas id="mycanvas" width="520px" height="1314px">
        对不起,你的浏览器不支持canvas
    </canvas>

    <script type="text/javascript">
        //获取canvas元素
        var myCanvas = document.getElementById('mycanvas');
        //获取Context上下文
        var ctx = myCanvas.getContext('2d');
        //设置渐变色
        var gradient = ctx.createLinearGradient(0,0,170,0)
        gradient.addColorStop(0,'red');
        gradient.addColorStop(0.2,'orange');
        gradient.addColorStop(0.5,'yellow');
        gradient.addColorStop(0.7,'green');
        gradient.addColorStop(1,'blue');
        //填充色为渐变色
        ctx.fillStyle = gradient;
        //绘制实心矩形
        ctx.fillRect(10, 10, 100, 200);
    </script>
</body>

在这里插入图片描述

放射状/环形渐变

使用 createRadialGradient() 方法创建放射状/环形的渐变。语法为:

ctx.createRadialGradient(x0, y0, r0, x1, y1, r1);

参数说明:

  • x0 表示渐变的开始圆的 x 坐标。
  • y0 表示渐变的开始圆的 y 坐标。
  • r0 表示开始圆的半径。
  • x1 表示渐变的结束圆的 x 坐标。
  • y1 表示渐变的结束圆的 y 坐标。
  • r1 表示结束圆的半径。
<body>
    <!--添加canvas元素,设置画布的大小-->
    <canvas id="mycanvas" width="520px" height="1314px">
        对不起,你的浏览器不支持canvas
    </canvas>

    <script type="text/javascript">
        //获取canvas元素
        var myCanvas = document.getElementById('mycanvas');
        //获取Context上下文
        var ctx = myCanvas.getContext('2d');
        //设置渐变色
        var gradient = ctx.createRadialGradient(75,50,5,90,60,100);
        gradient.addColorStop(0,'red');
        gradient.addColorStop(0.2,'orange');
        gradient.addColorStop(0.5,'yellow');
        gradient.addColorStop(0.7,'green');
        gradient.addColorStop(1,'blue');
        //填充色为渐变色
        ctx.fillStyle = gradient;
        //绘制实心矩形
        ctx.fillRect(10, 10, 190, 160);
    </script>
</body>

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值