From cbe22df372dd0633b76b8483c6f598dc41861a01 Mon Sep 17 00:00:00 2001 From: bancika Date: Thu, 10 Sep 2020 17:23:18 +0200 Subject: [PATCH] fix integer rounding --- .../components/semiconductors/BridgeRectifier.java | 12 ++++++------ .../org/diylc/components/semiconductors/DIL_IC.java | 7 ++++--- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/BridgeRectifier.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/BridgeRectifier.java index 1e6ba8c9..e4ab242b 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/BridgeRectifier.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/BridgeRectifier.java @@ -27,6 +27,7 @@ import java.awt.Composite; import java.awt.FontMetrics; import java.awt.Graphics2D; import java.awt.Rectangle; +import java.awt.Shape; import java.awt.geom.AffineTransform; import java.awt.geom.Area; import java.awt.geom.Ellipse2D; @@ -360,15 +361,14 @@ public class BridgeRectifier extends AbstractTransparentComponent { if (!outlineMode) { for (Point2D point : controlPoints) { g2d.setColor(PIN_COLOR); + Shape shape; if (pinShape == PinShape.Round) - g2d.fillOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize); + shape = new Ellipse2D.Double(point.getX() - pinSize / 2, point.getY() - pinSize / 2, pinSize, pinSize); else - g2d.fillRect((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize); + shape = new Rectangle2D.Double(point.getX() - pinSize / 2, point.getY() - pinSize / 2, pinSize, pinSize); + g2d.fill(shape); g2d.setColor(PIN_BORDER_COLOR); - if (pinShape == PinShape.Round) - g2d.drawOval((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize); - else - g2d.drawRect((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize); + g2d.draw(shape); } } diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/DIL_IC.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/DIL_IC.java index 922d0137..1767fff9 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/DIL_IC.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/DIL_IC.java @@ -314,11 +314,12 @@ public class DIL_IC extends AbstractTransparentComponent { g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1f)); if (!outlineMode) { int pinSize = (int) PIN_SIZE.convertToPixels() / 2 * 2; - for (Point2D point : controlPoints) { + for (Point2D point : controlPoints) { + Rectangle2D rect = new Rectangle2D.Double(point.getX() - pinSize / 2, point.getY() - pinSize / 2, pinSize, pinSize); g2d.setColor(PIN_COLOR); - g2d.fillRect((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize); + g2d.fill(rect); g2d.setColor(PIN_BORDER_COLOR); - g2d.drawRect((int)(point.getX() - pinSize / 2), (int)(point.getY() - pinSize / 2), pinSize, pinSize); + g2d.draw(rect); } } Composite oldComposite = g2d.getComposite();