问答详情
源自:4-3 应用translate、rotate和scale

ctx代表整个画布,那ctx.rotate(rot / 180 * Math.PI)是旋转画布而不是单个五角星吗?

            ctx.translate(xw, yw);
            ctx.rotate(rot / 180 * Math.PI);
            ctx.scale(R,R);

            starPath(ctx);

五角星的绘制语句写在了后面,那rotate 这个方法是在旋转画布?

通过相对位置让小星星看起来是自己转动了吗?


提问者:Qzhor 2016-08-25 17:54

个回答

  • Icekiller
    2016-08-26 11:34:39
    已采纳

    rotate的旋转是你当前画布里面的元素,绘制五角星,使用for循环画出多个五角星,每次循环都使用了beginPath();

  • E网飙风
    2017-10-26 22:22:34

    45 * Math.PI/180,为什么是 180,而不是360?

  • Qzhor
    2016-08-26 13:23:26

    canvas的转换不是针对整个canvas的,而是针对调用转换方法之后绘制的shapes 或 paths。如下:

    context.rotate(45 * Math.PI/180);

    context.fillRect(50, 50, 50, 50);

       

    顺序很重要,反了就没有旋转的效果了。

    此贴终结。

  • Qzhor
    2016-08-26 12:36:35

    我回过来想一想,canvas的旋转是先把画布转好了,然后在旋转过的画布上画星星,而不是把星星画出来再动态旋转。