1.5.0升级1.5.2后cc.Graphics的arc方法会改变起点位置吗?

请问下cc.graphics画arc时会改变起点吗,我用1.5.0是ok的,升级到1.5.2就这样了?

我想画一个上面两个角为圆角,下面两个角为方角的形状,在使用close闭合路径时,发现起点到了最后一次绘制arc的起点。


在v1.5.0下面是ok的,升级到1.5.2后就变这样了。有没有好办法解决?
代码如下:
this.ctx.moveTo(0, 0); this.ctx.lineTo(0, 150 - this.raduis); this.ctx.arc(this.raduis, 150 - this.raduis, this.raduis, Math.PI, 0.5 * Math.PI); this.ctx.lineTo(800 - this.raduis, 150); this.ctx.arc(800 - this.raduis, 150 - this.raduis, this.raduis, 0.5 * Math.PI, 0); this.ctx.lineTo(800, 0); this.ctx.lineTo(0, 0); this.ctx.lineTo(0, 150 - this.raduis); this.ctx.close(); this.ctx.stroke(); this.ctx.fill();

@nantas 这个问题能帮忙看一下吗?

帖子不要沉呀!这个问题就没人遇到吗?
呼叫引擎团队大大们@nantas @panda @jare @jjyinkailejj

arc 会改变起点的,你不要用 close,用 lineTo 代替就好了

不使用close,没法用fill填充。
fill的填充区域还是和close的闭合区域一致的。

不使用close的效果如下:

代码如下:
this.ctx.arc(this.raduis, 150 - this.raduis, this.raduis, Math.PI, 0.5 * Math.PI); this.ctx.lineTo(800 - this.raduis, 150); this.ctx.arc(800 - this.raduis, 150 - this.raduis, this.raduis, 0.5 * Math.PI, 0); this.ctx.lineTo(800, 0); this.ctx.lineTo(0, 0); this.ctx.lineTo(0, 150 - this.raduis); // this.ctx.close(); this.ctx.stroke(); this.ctx.fill();