From bcba26538685e9ed51334539be0c3218063718d9 Mon Sep 17 00:00:00 2001 From: tomfisher Date: Wed, 4 Feb 2015 16:11:57 +0800 Subject: [PATCH] Fix the wrong path calculation of Arc with small angle --- src/main/java/pythagoras/d/AbstractArc.java | 2 +- src/main/java/pythagoras/f/AbstractArc.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/pythagoras/d/AbstractArc.java b/src/main/java/pythagoras/d/AbstractArc.java index 509414e..b0ba3d3 100644 --- a/src/main/java/pythagoras/d/AbstractArc.java +++ b/src/main/java/pythagoras/d/AbstractArc.java @@ -283,7 +283,7 @@ public abstract class AbstractArc extends RectangularShape implements IArc k = -k; } } else { - arcCount = (int)Math.rint(Math.abs(extent) / 90f); + arcCount = MathUtil.iceil(Math.abs(extent) / 90f); step = Math.toRadians(extent / arcCount); k = 4f / 3f * (1f - Math.cos(step / 2f)) / Math.sin(step / 2f); } diff --git a/src/main/java/pythagoras/f/AbstractArc.java b/src/main/java/pythagoras/f/AbstractArc.java index b8dbd2d..e1551e8 100644 --- a/src/main/java/pythagoras/f/AbstractArc.java +++ b/src/main/java/pythagoras/f/AbstractArc.java @@ -283,7 +283,7 @@ public abstract class AbstractArc extends RectangularShape implements IArc k = -k; } } else { - arcCount = (int)Math.rint(Math.abs(extent) / 90f); + arcCount = MathUtil.iceil(Math.abs(extent) / 90f); step = FloatMath.toRadians(extent / arcCount); k = 4f / 3f * (1f - FloatMath.cos(step / 2f)) / FloatMath.sin(step / 2f); }