From 7fbc46323c1e211912e7fb699129b311e3e43e2d Mon Sep 17 00:00:00 2001 From: hneemann Date: Thu, 16 Mar 2017 20:05:02 +0100 Subject: [PATCH] Fixed to small bounding boxes in svg graphics. --- .../de/neemann/digital/draw/graphics/GraphicSVG.java | 7 ++++--- .../java/de/neemann/digital/draw/graphics/Style.java | 11 ++++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/neemann/digital/draw/graphics/GraphicSVG.java b/src/main/java/de/neemann/digital/draw/graphics/GraphicSVG.java index 22367618d..46d38b8de 100644 --- a/src/main/java/de/neemann/digital/draw/graphics/GraphicSVG.java +++ b/src/main/java/de/neemann/digital/draw/graphics/GraphicSVG.java @@ -63,12 +63,13 @@ public class GraphicSVG implements Graphic, Closeable { + " xmlns:svg=\"http://www.w3.org/2000/svg\"\n" + " xmlns=\"http://www.w3.org/2000/svg\"\n"); - double width = (max.x - min.x) * svgScale / 100.0; - double height = (max.y - min.y) * svgScale / 100.0; + double width = (max.x - min.x + Style.MAXLINETHICK) * svgScale / 100.0; + double height = (max.y - min.y + Style.MAXLINETHICK) * svgScale / 100.0; + final int lineCorr = Style.MAXLINETHICK / 2; w.write(" width=\"" + width + "mm\"\n" + " height=\"" + height + "mm\"\n" - + " viewBox=\"" + min.x + " " + min.y + " " + (max.x - min.x) + " " + (max.y - min.y) + "\">\n"); + + " viewBox=\"" + (min.x - lineCorr) + " " + (min.y - lineCorr) + " " + (max.x - min.x + Style.MAXLINETHICK) + " " + (max.y - min.y + Style.MAXLINETHICK) + "\">\n"); w.write("\n"); } diff --git a/src/main/java/de/neemann/digital/draw/graphics/Style.java b/src/main/java/de/neemann/digital/draw/graphics/Style.java index d7d327e43..98d25321f 100644 --- a/src/main/java/de/neemann/digital/draw/graphics/Style.java +++ b/src/main/java/de/neemann/digital/draw/graphics/Style.java @@ -8,9 +8,14 @@ import java.awt.*; * @author hneemann */ public class Style { - private static final int WIRETHICK = 4; - private static final int LINETHICK = 4; - private static final int LINETHIN = 2; + /** + * maximal line thickness + */ + public static final int MAXLINETHICK = 4; + + private static final int WIRETHICK = MAXLINETHICK; + private static final int LINETHICK = MAXLINETHICK; + private static final int LINETHIN = MAXLINETHICK / 2; private static final int LINEDASH = 1; /**