• Canvas transform【每日一段代码28】


    <!DOCTYPE html>
    <html>
    <head>
    <title>scale</title>
    <script type="text/javascript">
    function draw() {
    var canvas = document.getElementById("myCanvas");
    var cxt = canvas.getContext("2d");
    var sin = Math.sin(Math.PI/6);
    var cos = Math.cos(Math.PI/6);
    cxt.translate(200,200);
    var c = 0;
    for (i=0; i<=12; i++)
    {
    c = Math.floor(255/12*i);
    cxt.fillStyle="rgb("+c+","+c+","+c+")";
    cxt.fillRect(0,0,100,10);
    cxt.transform(cos,sin,-sin,cos,0,0);
    }
    cxt.setTransform(-1,0,0,1,200,200);
    cxt.fillStyle="rgba(255,128,255,0.5)";
    cxt.fillRect(0,50,100,100);
    }
    </script>
    </head>
    <body onLoad="draw()">
    <canvas id="myCanvas" height="500" width="500" style="border:2px solid #06c;">
    </canvas>
    </body>
    </html>

    transform(m11, m12, m21, m22, dx, dy)  该方法是允许直接对变形矩阵作修改。

    这个方法必须将当前的变形矩阵乘上下面的矩阵:

    Code:
    m11 m21 dx
    m12 m22 dy
    0 0 1

    如果任意一个参数是无限大,变形矩阵也必须被标记为无限大,否则会抛出异常。

    Code:
    setTransform(m11, m12, m21, m22, dx, dy)

    这个方法必须重置当前的变形矩阵为单位矩阵,然后以相同的参数调用 transform 方法。如果任意一个参数是无限大,那么变形矩阵也必须被标记为无限大,否则会抛出异常。】



  • 相关阅读:
    os.path.basename()和os.path.splitext()
    关于pytorch中@和*的用处
    Python | os.path.join() method
    SURF (Speeded Up Robust Features,加速稳健特征)
    Canny算子
    医学影像中常见名词解释
    sigmod、tanh、ReLU激活函数的实现
    plt.gca()坐标轴移动
    损失函数和梯度下降解释
    torch和numpy的相互转换
  • 原文地址:https://www.cnblogs.com/naokr/p/2368166.html
Copyright © 2020-2023  润新知