• canvas图形变换


    为绘制上下文应用变换,会导致使用不同的变换矩阵应用处理,从而产生不同的结果。

    (1)rotate(angle):围绕原点旋转图像angle弧度(弧度=角度乘以π后再除以180,角度=弧度除以π再乘以180)。正值表示顺时针方向旋转,负值表示逆时针方向旋转。

    var canvas = document.getElementById('canvas');
    var context = canvas.getContext('2d');
    
    context.save();//保存记录画布当前状态
    context.fillStyle = 'rgba(280,187,188,0.5)';
    context.fillRect(0,0,100,50);
    context.rotate(Math.PI
    /6); context.fillStyle = 'rgba(180,187,188,0.5)'; context.fillRect(0,0,100,50); context.restore();//恢复变换前的矩阵状态

    (2)scale(scaleX,scaleY):缩放图像,在x方向乘以scaleX,在y方向乘以scaleY,两者默认值为1.0。

    context.save();
    context.strokeStyle = "rgba(31,37,38,0.5)";
    context.lineWidth = 1;
    context.strokeRect(150,0,100,100);
    context.scale(
    0.5,0.5); context.strokeRect(150,0,100,100);//scale(0.5,0.5)后,距离、边宽也随之缩放0.5倍。 context.restore();

    (3)translate(x, y):将坐标原点移到(x, y)。

    context.save();
    context.fillStyle = 'rgba(280,187,188,0.5)';
    context.fillRect(0,200,100,50);
    context.translate(
    100,100); context.fillStyle = 'rgba(280,187,188,0.5)'; context.fillRect(0,200,100,50); context.restore();

    (4)transform(m1_1, m1_2, m2_1, m2_2, dx, dy):直接修改变换矩阵。

    context.save();
    context.fillStyle = 'rgba(280,187,188,0.5)';
    context.fillRect(280,0,100,50);
    context.transform(
    1,Math.PI/6,-Math.PI/6,1,100,100);//两个1代表画布进行缩放,Math.PI/6表示顺时针旋转30度,(100,100)表示平移 context.fillStyle = 'rgba(180,187,188,0.5)'; context.fillRect(280,0,100,50); context.restore();

    (5)setTransform(m1_1, m1_2, m2_1, m2_2, dx, dy):将变换矩阵重置为默认状态,然后再调用transform()。

    context.fillStyle = 'rgba(280,187,188,0.5)';
    context.fillRect(280,0,100,50);
    
    context.transform(1,Math.PI/6,-Math.PI/6,1,100,100);//两个1代表画布进行缩放,Math.PI/6表示顺时针旋转30度,(100,100)表示平移
    context.fillStyle = 'rgba(180,187,188,0.5)';
    context.fillRect(280,0,100,50);
    
    context.setTransform(1,Math.PI/6,Math.PI/6,1,100,100);
    context.fillStyle = 'rgba(180,187,188,0.5)';
    context.fillRect(280,0,100,50);
  • 相关阅读:
    媒体格式分析之flv -- 基于FFMPEG
    x264源代码分析-转
    比特币的相关问题整理(详细的)
    比特币价格首超黄金 年涨幅超7600%
    比特币不是虚拟货币,这是一个真实世界----李笑来
    比特币投机者嘲笑称比特币为泡沫的人原因
    比特币:一个让投资人为之疯狂的神奇货币
    比特币沉浮录
    比特币淘金热席卷中国专业“挖矿机”受疯抢
    国内首起比特币交易平台诈骗案涉案人被捕
  • 原文地址:https://www.cnblogs.com/cornlin/p/7624805.html
Copyright © 2020-2023  润新知