ctx.translate(xw, yw);
ctx.rotate(rot / 180 * Math.PI);
ctx.scale(R,R);
starPath(ctx);
五角星的绘制语句写在了后面,那rotate 这个方法是在旋转画布?
通过相对位置让小星星看起来是自己转动了吗?
rotate的旋转是你当前画布里面的元素,绘制五角星,使用for循环画出多个五角星,每次循环都使用了beginPath();
45 * Math.PI/180,为什么是 180,而不是360?
canvas的转换不是针对整个canvas的,而是针对调用转换方法之后绘制的shapes 或 paths。如下:
context.rotate(45 * Math.PI/180);
context.fillRect(50, 50, 50, 50);
顺序很重要,反了就没有旋转的效果了。
此贴终结。
我回过来想一想,canvas的旋转是先把画布转好了,然后在旋转过的画布上画星星,而不是把星星画出来再动态旋转。