From 04fc13f4d246e6a078341b12a03cbebeb2e48775 Mon Sep 17 00:00:00 2001 From: Tim Molter <tim.molter@gmail.com> Date: Tue, 30 Apr 2013 13:12:32 +0200 Subject: [PATCH] cleaned up and fixed marker drawing --- .../java/com/xeiam/xchart/standalone/Example1.java | 5 ++++- .../java/com/xeiam/xchart/internal/markers/Circle.java | 2 +- .../com/xeiam/xchart/internal/markers/Diamond.java | 10 +++++----- .../java/com/xeiam/xchart/internal/markers/Marker.java | 3 +-- .../java/com/xeiam/xchart/internal/markers/Square.java | 2 +- .../xeiam/xchart/internal/markers/TriangleDown.java | 8 +++----- .../com/xeiam/xchart/internal/markers/TriangleUp.java | 8 +++----- 7 files changed, 18 insertions(+), 20 deletions(-) diff --git a/xchart-demo/src/main/java/com/xeiam/xchart/standalone/Example1.java b/xchart-demo/src/main/java/com/xeiam/xchart/standalone/Example1.java index 75dbf9e0..e88d391b 100644 --- a/xchart-demo/src/main/java/com/xeiam/xchart/standalone/Example1.java +++ b/xchart-demo/src/main/java/com/xeiam/xchart/standalone/Example1.java @@ -17,6 +17,8 @@ package com.xeiam.xchart.standalone; import com.xeiam.xchart.BitmapEncoder; import com.xeiam.xchart.Chart; +import com.xeiam.xchart.Series; +import com.xeiam.xchart.SeriesMarker; /** * Creates a simple Chart and saves it as a PNG and JPEG image file. @@ -32,7 +34,8 @@ public class Example1 { chart.setChartTitle("Sample Chart"); chart.setXAxisTitle("X"); chart.setYAxisTitle("Y"); - chart.addSeries("y(x)", null, yData); + Series series = chart.addSeries("y(x)", null, yData); + series.setMarker(SeriesMarker.CIRCLE); BitmapEncoder.savePNG(chart, "./Sample_Chart.png"); BitmapEncoder.savePNGWithDPI(chart, "./Sample_Chart_300_DPI.png", 300); diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/markers/Circle.java b/xchart/src/main/java/com/xeiam/xchart/internal/markers/Circle.java index e146f43a..c41ad4f5 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/markers/Circle.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/markers/Circle.java @@ -28,7 +28,7 @@ public class Circle extends Marker { public void paint(Graphics2D g, double xOffset, double yOffset) { g.setStroke(stroke); - Shape circle = new Ellipse2D.Double(xOffset + Marker.X_OFFSET, yOffset + Marker.Y_OFFSET, Marker.SIZE, Marker.SIZE); + Shape circle = new Ellipse2D.Double(xOffset - Marker.HALF_SIZE, yOffset - Marker.HALF_SIZE, Marker.SIZE, Marker.SIZE); g.fill(circle); } diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/markers/Diamond.java b/xchart/src/main/java/com/xeiam/xchart/internal/markers/Diamond.java index 5fb4cb1f..efa7298c 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/markers/Diamond.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/markers/Diamond.java @@ -29,13 +29,13 @@ public class Diamond extends Marker { g.setStroke(stroke); // Make a diamond - double halfSize = Math.ceil((Marker.SIZE + 3) / 2.0); + double diamondHalfSize = Marker.HALF_SIZE * 1.3; Path2D.Double path = new Path2D.Double(); - path.moveTo(xOffset - halfSize, yOffset - halfSize + halfSize); - path.lineTo(xOffset - halfSize + halfSize, yOffset - halfSize + Marker.SIZE + 3); - path.lineTo(xOffset - halfSize + Marker.SIZE + 3, yOffset - halfSize + halfSize); - path.lineTo(xOffset - halfSize + halfSize, yOffset - halfSize); + path.moveTo(xOffset - diamondHalfSize, yOffset); + path.lineTo(xOffset, yOffset - diamondHalfSize); + path.lineTo(xOffset + diamondHalfSize, yOffset); + path.lineTo(xOffset, yOffset + diamondHalfSize); path.closePath(); g.fill(path); diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/markers/Marker.java b/xchart/src/main/java/com/xeiam/xchart/internal/markers/Marker.java index 05bd0edb..930894be 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/markers/Marker.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/markers/Marker.java @@ -27,8 +27,7 @@ public abstract class Marker { public static final double SIZE = 8; - public static final double X_OFFSET = -1.0 * (SIZE / 2.0); - public static final double Y_OFFSET = -1.0 * (SIZE / 2.0); + public static final double HALF_SIZE = SIZE / 2.0; public abstract void paint(Graphics2D g, double xOffset, double yOffset); } diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/markers/Square.java b/xchart/src/main/java/com/xeiam/xchart/internal/markers/Square.java index 84dbc41d..ba506d6b 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/markers/Square.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/markers/Square.java @@ -28,7 +28,7 @@ public class Square extends Marker { public void paint(Graphics2D g, double xOffset, double yOffset) { g.setStroke(stroke); - Shape square = new Rectangle2D.Double(xOffset + Marker.X_OFFSET, yOffset + Marker.Y_OFFSET, Marker.SIZE, Marker.SIZE); + Shape square = new Rectangle2D.Double(xOffset - Marker.HALF_SIZE, yOffset - Marker.HALF_SIZE, Marker.SIZE, Marker.SIZE); g.fill(square); } diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/markers/TriangleDown.java b/xchart/src/main/java/com/xeiam/xchart/internal/markers/TriangleDown.java index 3a0e0537..88adbb04 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/markers/TriangleDown.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/markers/TriangleDown.java @@ -29,12 +29,10 @@ public class TriangleDown extends Marker { g.setStroke(stroke); // Make a triangle - double halfSize = Math.ceil((Marker.SIZE + 1) / 2.0); - Path2D.Double path = new Path2D.Double(); - path.moveTo(xOffset - halfSize + 0, 1 + yOffset - halfSize + 0); - path.lineTo(xOffset - halfSize + halfSize, 1 + yOffset - halfSize + Marker.SIZE + 1); - path.lineTo(xOffset - halfSize + Marker.SIZE + 1, 1 + yOffset - halfSize + 0); + path.moveTo(xOffset - Marker.HALF_SIZE, 1 + yOffset - Marker.HALF_SIZE); + path.lineTo(xOffset, 1 + yOffset - Marker.HALF_SIZE + Marker.SIZE + 1); + path.lineTo(xOffset - Marker.HALF_SIZE + Marker.SIZE + 1, 1 + yOffset - Marker.HALF_SIZE); path.closePath(); g.fill(path); diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/markers/TriangleUp.java b/xchart/src/main/java/com/xeiam/xchart/internal/markers/TriangleUp.java index 21d8358c..add968f4 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/markers/TriangleUp.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/markers/TriangleUp.java @@ -29,12 +29,10 @@ public class TriangleUp extends Marker { g.setStroke(stroke); // Make a triangle - double halfSize = Math.ceil((Marker.SIZE + 1) / 2.0); - Path2D.Double path = new Path2D.Double(); - path.moveTo(xOffset - halfSize, yOffset - halfSize + Marker.SIZE + 1); - path.lineTo(xOffset - halfSize + Marker.SIZE + 1, yOffset - halfSize + Marker.SIZE + 1); - path.lineTo(xOffset - halfSize + halfSize, yOffset - halfSize + 0); + path.moveTo(xOffset - Marker.HALF_SIZE, yOffset - Marker.HALF_SIZE + Marker.SIZE + 1); + path.lineTo(xOffset - Marker.HALF_SIZE + Marker.SIZE + 1, yOffset - Marker.HALF_SIZE + Marker.SIZE + 1); + path.lineTo(xOffset, yOffset - Marker.HALF_SIZE); path.closePath(); g.fill(path); -- GitLab