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

来源:4-3 应用translate、rotate和scale

Qzhor

2016-08-25 17:54

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

            starPath(ctx);

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

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


写回答 关注

4回答

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

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

    Qzhor

    非常感谢!

    2016-08-26 14:07:04

    共 1 条回复 >

  • 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的旋转是先把画布转好了,然后在旋转过的画布上画星星,而不是把星星画出来再动态旋转。

Canvas绘图详解

Canvas系列教程第二课,详解Canvas各接口,让同学彻底掌握Canvas绘图

72881 学习 · 422 问题

查看课程

相似问题