diff --git a/src/core/graphics/Graphics.js b/src/core/graphics/Graphics.js index e40ce37..f2428e3 100644 --- a/src/core/graphics/Graphics.js +++ b/src/core/graphics/Graphics.js @@ -210,7 +210,7 @@ { this.lineWidth = lineWidth || 0; this.lineColor = color || 0; - this.lineAlpha = (arguments.length < 3) ? 1 : alpha; + this.lineAlpha = (alpha === undefined) ? 1 : alpha; if (this.currentPath) { @@ -454,28 +454,7 @@ */ Graphics.prototype.arc = function(cx, cy, radius, startAngle, endAngle, anticlockwise) { - var startX = cx + Math.cos(startAngle) * radius; - var startY = cy + Math.sin(startAngle) * radius; - var points; - - if( this.currentPath ) - { - points = this.currentPath.shape.points; - - if(points.length === 0) - { - points.push(startX, startY); - } - else if( points[points.length-2] !== startX || points[points.length-1] !== startY) - { - points.push(startX, startY); - } - } - else - { - this.moveTo(startX, startY); - points = this.currentPath.shape.points; - } + anticlockwise = anticlockwise || false; if (startAngle === endAngle) { @@ -491,14 +470,28 @@ startAngle += Math.PI * 2; } - var sweep = anticlockwise ? (startAngle - endAngle) *-1 : (endAngle - startAngle); - var segs = Math.ceil( Math.abs(sweep)/ (Math.PI * 2) ) * 40; + var sweep = anticlockwise ? (startAngle - endAngle) * -1 : (endAngle - startAngle); + var segs = Math.ceil(Math.abs(sweep) / (Math.PI * 2)) * 40; - if( sweep === 0 ) + if(sweep === 0) { return this; } + var startX = cx + Math.cos(startAngle) * radius; + var startY = cy + Math.sin(startAngle) * radius; + + if (anticlockwise && this.filling) + { + this.moveTo(cx, cy); + } + else + { + this.moveTo(startX, startY); + } + + var points = this.currentPath.shape.points; + var theta = sweep/(segs*2); var theta2 = theta*2; @@ -647,7 +640,8 @@ // see section 3.2: https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#3-managing-arguments points = new Array(arguments.length); - for (var i = 0; i < points.length; ++i) { + for (var i = 0; i < points.length; ++i) + { points[i] = arguments[i]; } }