canvas笔记二

  1. 旋转

css样式

<style>
        canvas{
            width: 500px;
            height: 300px;
            border: 1px solid #ccc;
        }
    </style>

html

<canvas id="can" width="500px" height="300px"></canvas>

js

 var canvas = document.getElementById("can");
        var ctx = canvas.getContext("2d");
        ctx.beginPath();
        ctx.translate(100,100);//坐标系平移,开一改变顶点
        ctx.rotate(Math.PI / 3);//指旋转的角度 , 默认是以画布的原点即左上角
        ctx.moveTo(0,0);
        ctx.lineTo(100,100);
        ctx.stroke();
   

默认的旋转是以画布的的原点,即画布默认以左上角为原点的, 如果想变成以线条的定点为旋转原点,可以使用 ctx.translate(100,100)

在这里插入图片描述
scale(2,1)可以是化的图形缩放

 ctx.scale(2,1);// 缩放
 ctx.strokeRect(100, 100, 100, 100);

在这里插入图片描述
2. 如果第一个图形想旋转,第二个图形不想选择, 则可以使用save()、restore()等。 在canvas中默认旋转是全局的

  //保存最基础的数据,然后在还原
        ctx.save();//坐标系的平移数据、 缩放数据、旋转数据
        ctx.translate(100, 100);
        ctx.rotate(Math.PI / 4);
        ctx.strokeRect(0, 0, 100, 50);

        ctx.beginPath();
        ctx.restore();//与save() 一起使用
        ctx.fillRect(200, 0, 100, 50);

在这里插入图片描述

canvas画的图形可以填充颜色、或者背景图片

1填充背景颜色

  //矩形内容的填充
        ctx.fillStyle ="blue"; // 填充不同的颜色
        ctx.fillRect(100, 100, 200, 100);

在这里插入图片描述

填充图片

        // 填充图片
        var img = new Image();
        img.src = "./good.png";
        img.onload = function(){
        ctx.beginPath();
        ctx.translate(100, 100);
     var bg = ctx.createPattern(img,"no-repeat");
        //纹理的填充,是以坐标系原点进行填充的
        ctx.fillStyle = bg;
        ctx.fillRect(100, 100, 200, 100);
        }

在这里插入图片描述

也可以填充渐变颜色

1.线性渐变

  //  渐变填充
    // 线性渐变的 起始点是 坐标轴原点  可以用 ctx.translate(100, 100); 改变
        ctx.beginPath();                     // 调整渐变的方向
        var bg = ctx.createLinearGradient(0, 0, 200, 0);
        bg.addColorStop(0,"blue");//类似与关键帧
        bg.addColorStop(1, "pink");
        ctx.fillStyle = bg;
        ctx.fillRect(0, 0, 200, 100);

在这里插入图片描述
辐射渐变

  // 辐射渐变
        ctx.beginPath();                 // 中心坐标 半径  外圈的坐标  半径
        var bg = ctx.createRadialGradient(100, 100, 10, 100, 100, 100);
        bg.addColorStop(0, "pink");
        bg.addColorStop(0.5, "red");
        bg.addColorStop(1, "yellow");
        ctx.fillStyle = bg;
        ctx.fillRect(0, 0, 200, 200);

在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值