已采纳回答 / 灯元
function drawStar(cxt,r,R,x,y,rot){ cxt.beginPath(); for(var i=0;i<5; i++){ cxt.lineTo(Math.cos((18+i*72-rot)/180*Math.PI)*R+x, -Math.sin((18+i*72-rot)/180*Math.PI)*R+y); cxt.lineTo(Math.cos((54+i*72-rot)/180*Math.PI)*r+x, -Math.sin(...
2016-07-13
已采纳回答 / 慕粉3591791
洗了个澡!!!问题解决!是画字的问题,因为globalCompsitionOperation的属性,如destination-out只显示先画的没有重复部分,也就是说其他部分全部被清理!解决方案用离屏canvas技术!!!
已采纳回答 / iFaye
选择button那里吧#号去掉
已采纳回答 / 田小雨
我也试了一下你说的这种情况,确实冲突了,但是globalCompositeOperation本身就是定义源图形和目标图形的遮挡效果的,而如果设置了globalAlpha让图形都变成透明,目标图形和源图形就产生了叠加效果,二者冲突也能理解。
已采纳回答 / 王小仙
把绘制的过程封装成一个函数啊,,然后把 compositeType 作为参数传进去,, 你这样写把值都写死了,,虽然每次点击按钮都能改变 compositeType 的值,,但是并不会把 compositeType 给他 context.globalCompositeOperation,,因为你下面的写的绘制过程只会执行一次,,每次点击按钮他们并不会执行,,
已采纳回答 / fengyunzhu
看一下逻辑就知道原因了当radius大于700时(比方说是705), isIncrease设为了false,接着radius开始缩小执行-5操作,此时radius为700按原先逻辑,再次执行update时,因为isIncrease是false,radius还是执行-5操作,一直到小于150时,但是你把var isIncrease = true放在了update里面,这时radius为700 ,isIncrease为true,那么radius要执行+5操作,radius变为705,然后超过700,又执行-5...
2016-05-15
已采纳回答 / lc9122
四个错误:第44行,getBoundingClientRect()拼写错误,“bound”的b是大写的detect和draw函数的for循环条件多了个“=”第48行beginPath拼写错误第54行的括号后面有个多余的符号。这些错误在浏览器上调试调试就可以发现问题的。
2016-04-02