为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

            starPath(ctx);

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

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


正在回答

4 回答

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

0 回复 有任何疑惑可以回复我~
#1

Qzhor 提问者

非常感谢!
2016-08-26 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

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

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

   

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

此贴终结。

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信