Index: LayoutTests/fast/canvas/canvas-arc-circumference.html |
diff --git a/LayoutTests/fast/canvas/canvas-arc-circumference.html b/LayoutTests/fast/canvas/canvas-arc-circumference.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1a8695bb08d8fb5e607a0499a2c18d3e50d4cb29 |
--- /dev/null |
+++ b/LayoutTests/fast/canvas/canvas-arc-circumference.html |
@@ -0,0 +1,59 @@ |
+<!DOCTYPE html> |
+<html> |
+<head></head> |
+<body> |
+<canvas id="mycanvas" width="600" height="400"></canvas> |
+<script> |
+if (window.testRunner) |
+ testRunner.dumpAsText(true); |
+ |
+var canvas = document.getElementById('mycanvas'); |
+var ctx = canvas.getContext('2d'); |
+ |
+ctx.lineWidth = 3; |
+ctx.strokeStyle = 'rgba(0, 0, 0, 0.5)'; |
+ |
+// 20 angles. |
+var sweepAngles = [ |
+ -123.7, -2.3, -2, -1, -0.3, -0.000001, 0, 0.000001, 0.3, 0.7, |
+ 1, 1.3, 1.5, 1.7, 1.99999, 2, 2.00001, 2.3, 4.3, 3934723942837.3 |
+]; |
+for (var i = 0; i < sweepAngles.length; i++) { |
+ sweepAngles[i] = sweepAngles[i] * Math.PI; |
+} |
+ |
+var startAngles = [ |
+ -1, -0.5, 0, 0.5 |
+] |
+for (var i = 0; i < startAngles.length; i++) { |
+ startAngles[i] = startAngles[i] * Math.PI; |
+} |
+ |
+var startAngle = 0; |
+var anticlockwise = false; |
+var sign = 1; |
+for (var i = 0; i < startAngles.length * 2; i++) { |
+ if (i == startAngles.length) { |
+ anticlockwise = true; |
+ sign = -1; |
+ } |
+ startAngle = startAngles[i % startAngles.length] * sign; |
+ ctx.save(); |
+ for (var j = 0; j < sweepAngles.length; j++) { |
+ ctx.save(); |
+ ctx.beginPath(); |
+ ctx.moveTo(0, 2); |
+ ctx.arc(18, 15, 10, startAngle, startAngle + (sweepAngles[j] * sign), anticlockwise); |
+ ctx.lineTo(0, 28); |
+ ctx.stroke(); |
+ ctx.restore(); |
+ ctx.translate(30, 0); |
+ } |
+ ctx.restore(); |
+ ctx.translate(0, 40); |
+} |
+ |
+</script> |
+</body> |
+</html> |
+ |