From fbee064d00ec086c157bd7282f048165399ec5e4 Mon Sep 17 00:00:00 2001 From: Tim Molter <tim.molter@gmail.com> Date: Thu, 28 Feb 2013 14:13:14 +0100 Subject: [PATCH] fixed rendering flaw with out of bounds min and max axes values --- .../internal/chartpart/PlotContentBarChart.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentBarChart.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentBarChart.java index 2e80255e..f653040a 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentBarChart.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/PlotContentBarChart.java @@ -102,10 +102,18 @@ public class PlotContentBarChart extends PlotContent { if (xData.contains(categoryItr.next())) { BigDecimal y = new BigDecimal(yItr.next().doubleValue()); - int yTransform = (int) (bounds.getHeight() - (yTopMargin + y.subtract(yMin).doubleValue() / yMax.subtract(yMin).doubleValue() * yTickSpace)); + BigDecimal yTop = new BigDecimal(y.doubleValue()); + if (yTop.compareTo(yMax) > 0) { + yTop = yMax; + } + int yTransform = (int) (bounds.getHeight() - (yTopMargin + yTop.subtract(yMin).doubleValue() / yMax.subtract(yMin).doubleValue() * yTickSpace)); int yOffset = (int) (bounds.getY() + yTransform); - int zeroTransform = (int) (bounds.getHeight() - (yTopMargin + (yMin.subtract(yMin).doubleValue()) / (yMax.subtract(yMin).doubleValue()) * yTickSpace)); + BigDecimal yBottom = new BigDecimal(y.doubleValue()); + if (yBottom.compareTo(yMin) > 0) { + yBottom = yMin; + } + int zeroTransform = (int) (bounds.getHeight() - (yTopMargin + (yBottom.subtract(yMin).doubleValue()) / (yMax.subtract(yMin).doubleValue()) * yTickSpace)); int zeroOffset = (int) (bounds.getY() + zeroTransform); // paint bar -- GitLab