From d2fe49fbd5f3378ce494e86ea291d9efbeae29e8 Mon Sep 17 00:00:00 2001
From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04>
Date: Mon, 16 Feb 2009 09:04:26 +0000
Subject: [PATCH] fix for rounding errors when drawing small angle arcs

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@9811 ee4ac58c-ac51-4696-9907-e4b3aa274f04
---
 uk/ac/sanger/artemis/circular/Block.java | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/uk/ac/sanger/artemis/circular/Block.java b/uk/ac/sanger/artemis/circular/Block.java
index 29feed41e..355e96695 100644
--- a/uk/ac/sanger/artemis/circular/Block.java
+++ b/uk/ac/sanger/artemis/circular/Block.java
@@ -32,6 +32,7 @@ import java.io.IOException;
 import java.util.Vector;
 
 import javax.swing.event.*;
+import java.awt.geom.Arc2D;
 
 public class Block implements Transferable
 {
@@ -522,9 +523,9 @@ public class Block implements Transferable
     // double arcLength = Math.toRadians(angEnd)*(bdiameter/2.);
     
     // if too small draw arc as a line
-    if(Math.abs(angEnd) < 0.5d)
+    if(Math.abs(angEnd) < 0.4d)
     {
-      newOrig = (AffineTransform) (origin.clone());
+    	newOrig = (AffineTransform) (origin.clone());
       
       int xLine = d2-strokeInt2 ; 
       newOrig.translate(locx+d2,locy+d2);
@@ -547,9 +548,12 @@ public class Block implements Transferable
           BasicStroke.JOIN_MITER);
 
       g2.setStroke(basicstroke);
-      g2.drawArc(locx,locy, d, d,
+      /*g2.drawArc(locx,locy, d, d,
                Math.round(Math.round(angStart)),
-               Math.round(Math.round(angEnd)));
+               Math.round(Math.round(angEnd)));*/
+      
+      g2.draw(new Arc2D.Double(locx,locy, d, d, angStart, angEnd,
+          Arc2D.OPEN));
     }
     
     g2.setTransform(origin);
-- 
GitLab