首页 > web前端 > H5教程 > 正文

HTML5之5 __Canvas: 渐变

黄舟
发布: 2017-02-18 14:24:20
原创
1537人浏览过

渐变 gradient 是一种绘图方式,它应用于颜色上,

使用渐变需要三个步骤:

1.   创建渐变对象

2.   为渐变对象设置颜色,即使用 addColorStop()函数, 指明过渡方式, addColorStop 函数允许 指定两个参数: 颜色和偏移量, 颜色参数是       指开发人员希望在偏移位置描边或填充时所使用的颜色。 偏移量是一个0.0 到 1.0 之间的数值, 代表沿着渐变线渐变的距离有多远.

3.  在context 上为填充样式或者描边样式 设置渐变。

立即学习前端免费学习笔记(深入)”;

可以将渐变 看作是颜色沿着一条线进行缓慢地变化.

请看代码

<!DOCTYPE html>
<html>
<meta charset="UTF-8">
  <title>渐变</title>

  <canvas id="trails" style="border: 1px solid;"  width="400" height="400"> </canvas>
  <script>
        var gravel = new Image();
        gravel.src = "gravel.jpg";
        gravel.onload = function () {
            drawTrails();
        }

        function createCanopyPath(context) {
            context.beginPath();
            context.moveTo(-25, -50);
            context.lineTo(-10, -80);
            context.lineTo(-20, -80);
            context.lineTo(-5, -110);
            context.lineTo(-15, -110);

            context.lineTo(0, -140);

            context.lineTo(15, -110);
            context.lineTo(5, -110);
            context.lineTo(20, -80);
            context.lineTo(10, -80);
            context.lineTo(25, -50);
            context.closePath();
        }

        function drawTrails() {
            var canvas = document.getElementById('trails');
            var context = canvas.getContext('2d');

            context.save();
            context.translate(130, 250);

            // 创建用作树干纹理的三阶水平渐变
            var trunkGradient = context.createLinearGradient(-5, -50, 5, -50);

            // The beginning of the trunk is medium brown
            trunkGradient.addColorStop(0, '#663300');

            // 树干中间偏左的位置颜色要淡一些
            trunkGradient.addColorStop(0.4, '#996600');

            // 树干右侧边缘的颜色要深一些
            trunkGradient.addColorStop(1, '#552200');

            // 使用渐变色填充树干
            context.fillStyle = trunkGradient;
            context.fillRect(-8, -50,15, 100);
            //然后,创建垂直渐变,以用作树冠在树干上投影
            var canopyShadow = context.createLinearGradient(0, -50, 0, 0);

            // 投影渐变的起点是透明度设为50%的黑色
            canopyShadow.addColorStop(0, 'rgba(0, 0, 0, 0.5)');

            // 方向垂直向下, 渐变色在很短的距离内迅速渐变至完全透明, 这段长度之外的树干上没有投影
            canopyShadow.addColorStop(0.2, 'rgba(0, 0, 0, 0.0)');

            // 在树干上填充投影渐变
            context.fillStyle = canopyShadow;
            context.fillRect(-5, -50, 10, 50);

            createCanopyPath(context);

            context.lineWidth = 4;
            context.lineJoin = 'round';
            context.strokeStyle = '#663300';
            context.stroke();

            context.fillStyle = '#339900';
            context.fill();

            context.restore();
        }

  </script>
</html>
登录后复制


降重鸟
降重鸟

要想效果好,就用降重鸟。AI改写智能降低AIGC率和重复率。

降重鸟 308
查看详情 降重鸟

除了上述的线性渐变以外, canvas 还支持 放射性渐变,即颜色会介于两个指定圆间的锥形区域平滑变化。 

方法为 createRaddialGraddient(x0,y0, r0,  x1, y1, r1);  共有 6个参数,前3个参数代表以(x0,  y0) 为圆心,r0 为半径的圆, 后3个参数 代表以(x1, y1) 为圆心,r1为半径的另一个圆,渐变会在两个圆中间的区域出现.

附件,图片  gravel.jpg


 以上就是HTML5之5 __Canvas: 渐变的内容,更多相关内容请关注PHP中文网(www.php.cn)!


相关标签:
HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号