/** * Generates a list of tick values for the angular tick marks. * * @return A list of {@link NumberTick} instances. * * @since 1.0.10 */ protected List refreshAngleTicks() { List ticks = new ArrayList(); for (double currentTickVal = 0.0; currentTickVal < 360.0; currentTickVal += this.angleTickUnit.getSize()) { NumberTick tick = new NumberTick(new Double(currentTickVal), this.angleTickUnit.valueToString(currentTickVal), TextAnchor.CENTER, TextAnchor.CENTER, 0.0); ticks.add(tick); } return ticks; }
while (iterator.hasNext()) { NumberTick tick = (NumberTick) iterator.next(); double v = tick.getValue(); double vv = (v - min) / (max - min); if (this.axisForAutoLabels.isInverted()) { vv = 1.0 - vv; normalisedTicks.add(new NumberTick(new Double(vv), tick.getText(), tick.getTextAnchor(), tick.getRotationAnchor(), tick.getAngle())); tickValue = (i * (1.0 / (Math.max(labelCount - 1, 1)))); Tick tick = new NumberTick(new Double(tickValue), tickLabel, anchor, rotationAnchor, 0.0);
NumberTick tick = (NumberTick) iterator.next(); Point p = plot.translateValueThetaRadiusToJava2D(90.0, tick.getNumber().doubleValue(), dataArea); int r = p.x - center.x; int upperLeftX = center.x - r;
result.remove(result.size() - 1); result.add(new CycleBoundTick( this.boundMappedToLastCycle, lastTick.getNumber(), lastTick.getText(), anchor, anchor, lastTick.getAngle()) ); this.internalMarkerWhenTicksOverlap = true; result.remove(result.size() - 1); result.add(new CycleBoundTick( this.boundMappedToLastCycle, lastTick.getNumber(), lastTick.getText(), anchor, anchor, lastTick.getAngle()) ); this.internalMarkerWhenTicksOverlap = true; result.remove(result.size() - 1); result.add(new CycleBoundTick( this.boundMappedToLastCycle, lastTick.getNumber(), lastTick.getText(), anchor, anchor, lastTick.getAngle()) ); this.internalMarkerWhenTicksOverlap = true; result.remove(result.size() - 1); result.add(new CycleBoundTick( this.boundMappedToLastCycle, lastTick.getNumber(), lastTick.getText(), anchor, anchor, lastTick.getAngle())
while (iterator.hasNext()) { NumberTick tick = (NumberTick) iterator.next(); double tickVal = tick.getNumber().doubleValue(); Point p = plot.translateToJava2D(tickVal, outerValue, axis, dataArea); int y = p.y; g2.setPaint(plot.getAngleLabelPaint()); TextUtils.drawAlignedString(tick.getText(), g2, x, y, tick.getTextAnchor());
assertEquals("", ((NumberTick) ticks.get(0)).getText()); assertEquals("", ((NumberTick) ticks.get(1)).getText()); assertEquals("1", ((NumberTick) ticks.get(7)).getText()); assertEquals("", ((NumberTick) ticks.get(9)).getText()); assertEquals("10", ((NumberTick) ticks.get(16)).getText()); assertEquals("", ((NumberTick) ticks.get(18)).getText()); assertEquals("100", ((NumberTick) ticks.get(25)).getText()); assertEquals("", ((NumberTick) ticks.get(26)).getText()); assertEquals("", ((NumberTick) ticks.get(0)).getText()); assertEquals("", ((NumberTick) ticks.get(1)).getText()); assertEquals("1", ((NumberTick) ticks.get(7)).getText()); assertEquals("", ((NumberTick) ticks.get(9)).getText()); assertEquals("10", ((NumberTick) ticks.get(16)).getText()); assertEquals("", ((NumberTick) ticks.get(18)).getText()); assertEquals(0.3, ((NumberTick) ticks.get(0)).getValue(), 1.E-6); assertEquals(0.4, ((NumberTick) ticks.get(1)).getValue(), 1.E-6); assertEquals(0.5, ((NumberTick) ticks.get(2)).getValue(), 1.E-6); assertEquals(0.6, ((NumberTick) ticks.get(3)).getValue(), 1.E-6); assertEquals(0.7, ((NumberTick) ticks.get(4)).getValue(), 1.E-6); assertEquals(0.8, ((NumberTick) ticks.get(5)).getValue(), 1.E-6); assertEquals(0.9, ((NumberTick) ticks.get(6)).getValue(), 1.E-6); assertEquals("1", ((NumberTick) ticks.get(7)).getText()); assertEquals("2", ((NumberTick) ticks.get(8)).getText()); assertEquals("3", ((NumberTick) ticks.get(9)).getText()); assertEquals(0.3, ((NumberTick) ticks.get(0)).getValue(), 1.E-6); assertEquals(0.4, ((NumberTick) ticks.get(1)).getValue(), 1.E-6);
@Test public void testRefreshTicksForNegativeAxisRange() throws Exception { CustomLogarithmicAxis testAxis = new CustomLogarithmicAxis("testAxis"); testAxis.setRange(-300, -3); List ticks = testAxis.refreshTicks(RectangleEdge.TOP, CustomLogarithmicAxis.HORIZONTAL); assertNotNull(ticks); assertEquals(19, ticks.size()); // we expect labels at the power of 10 values only assertEquals("", ((NumberTick) ticks.get(0)).getText()); assertEquals("", ((NumberTick) ticks.get(1)).getText()); assertEquals("-10", ((NumberTick) ticks.get(7)).getText()); assertEquals("", ((NumberTick) ticks.get(9)).getText()); assertEquals("-100", ((NumberTick) ticks.get(16)).getText()); assertEquals("", ((NumberTick) ticks.get(18)).getText()); }
NumberTick tick = (NumberTick) iterator.next(); Point p = plot.translateValueThetaRadiusToJava2D( tick.getNumber().doubleValue(), maxRadius, dataArea); g2.setPaint(plot.getAngleGridlinePaint()); g2.drawLine(center.x, center.y, p.x, p.y); int y = p.y; g2.setPaint(plot.getAngleLabelPaint()); TextUtilities.drawAlignedString(tick.getText(), g2, x, y, TextAnchor.CENTER);
result.remove(result.size() - 1); result.add(new CycleBoundTick( this.boundMappedToLastCycle, lastTick.getNumber(), lastTick.getText(), anchor, anchor, lastTick.getAngle()) ); this.internalMarkerWhenTicksOverlap = true; result.remove(result.size() - 1); result.add(new CycleBoundTick( this.boundMappedToLastCycle, lastTick.getNumber(), lastTick.getText(), anchor, anchor, lastTick.getAngle()) ); this.internalMarkerWhenTicksOverlap = true; result.remove(result.size() - 1); result.add(new CycleBoundTick( this.boundMappedToLastCycle, lastTick.getNumber(), lastTick.getText(), anchor, anchor, lastTick.getAngle()) ); this.internalMarkerWhenTicksOverlap = true; result.remove(result.size() - 1); result.add(new CycleBoundTick( this.boundMappedToLastCycle, lastTick.getNumber(), lastTick.getText(), anchor, anchor, lastTick.getAngle())
assertEquals("", ((NumberTick) ticks.get(0)).getText()); assertEquals("", ((NumberTick) ticks.get(1)).getText()); assertEquals("1", ((NumberTick) ticks.get(7)).getText()); assertEquals("", ((NumberTick) ticks.get(9)).getText()); assertEquals("10", ((NumberTick) ticks.get(16)).getText()); assertEquals("", ((NumberTick) ticks.get(18)).getText()); assertEquals("100", ((NumberTick) ticks.get(25)).getText()); assertEquals("", ((NumberTick) ticks.get(26)).getText()); assertEquals("", ((NumberTick) ticks.get(0)).getText()); assertEquals("", ((NumberTick) ticks.get(1)).getText()); assertEquals("1", ((NumberTick) ticks.get(7)).getText()); assertEquals("", ((NumberTick) ticks.get(9)).getText()); assertEquals("10", ((NumberTick) ticks.get(16)).getText()); assertEquals("", ((NumberTick) ticks.get(18)).getText()); assertEquals(0.3, ((NumberTick) ticks.get(0)).getValue(), 1.E-6); assertEquals(0.4, ((NumberTick) ticks.get(1)).getValue(), 1.E-6); assertEquals(0.5, ((NumberTick) ticks.get(2)).getValue(), 1.E-6); assertEquals(0.6, ((NumberTick) ticks.get(3)).getValue(), 1.E-6); assertEquals(0.7, ((NumberTick) ticks.get(4)).getValue(), 1.E-6); assertEquals(0.8, ((NumberTick) ticks.get(5)).getValue(), 1.E-6); assertEquals(0.9, ((NumberTick) ticks.get(6)).getValue(), 1.E-6); assertEquals("1", ((NumberTick) ticks.get(7)).getText()); assertEquals("2", ((NumberTick) ticks.get(8)).getText()); assertEquals("3", ((NumberTick) ticks.get(9)).getText()); assertEquals(0.3, ((NumberTick) ticks.get(0)).getValue(), 1.E-6); assertEquals(0.4, ((NumberTick) ticks.get(1)).getValue(), 1.E-6);
@Test public void testRefreshTicksForNegativeAxisRange() throws Exception { CustomLogarithmicAxis testAxis = new CustomLogarithmicAxis("testAxis"); testAxis.setRange(-300, -3); List ticks = testAxis.refreshTicks(RectangleEdge.TOP, CustomLogarithmicAxis.HORIZONTAL); assertNotNull(ticks); assertEquals(19, ticks.size()); // we expect labels at the power of 10 values only assertEquals("", ((NumberTick) ticks.get(0)).getText()); assertEquals("", ((NumberTick) ticks.get(1)).getText()); assertEquals("-10", ((NumberTick) ticks.get(7)).getText()); assertEquals("", ((NumberTick) ticks.get(9)).getText()); assertEquals("-100", ((NumberTick) ticks.get(16)).getText()); assertEquals("", ((NumberTick) ticks.get(18)).getText()); }
private void addHorizontalTicks(RectangleEdge edge, List ticks, double lowerBoundVal, String tickLabel, double tickVal) { if (tickVal >= lowerBoundVal - SMALL_LOG_VALUE) { //tick value not below lowest data value TextAnchor anchor; TextAnchor rotationAnchor; double angle = 0.0; if (isVerticalTickLabels()) { anchor = TextAnchor.CENTER_RIGHT; rotationAnchor = TextAnchor.CENTER_RIGHT; if (edge == RectangleEdge.TOP) { angle = Math.PI / 2.0; } else { angle = -Math.PI / 2.0; } } else { if (edge == RectangleEdge.TOP) { anchor = TextAnchor.BOTTOM_CENTER; rotationAnchor = TextAnchor.BOTTOM_CENTER; } else { anchor = TextAnchor.TOP_CENTER; rotationAnchor = TextAnchor.TOP_CENTER; } } ticks.add(new NumberTick(new Double(tickVal), tickLabel, anchor, rotationAnchor, angle)); } }
while (iterator.hasNext()) { NumberTick tick = (NumberTick) iterator.next(); double v = tick.getValue(); double vv = (v - min) / (max - min); if (this.axisForAutoLabels.isInverted()) { vv = 1.0 - vv; normalisedTicks.add(new NumberTick(new Double(vv), tick.getText(), tick.getTextAnchor(), tick.getRotationAnchor(), tick.getAngle())); tickValue = (i * (1.0 / (Math.max(labelCount - 1, 1)))); Tick tick = new NumberTick(new Double(tickValue), tickLabel, anchor, rotationAnchor, 0.0);
@Test public void testRefreshTicksVerticalAxisOrientation() throws Exception { CustomLogarithmicAxis testAxis = new CustomLogarithmicAxis("testAxis"); testAxis.setRange(-300, -3); List ticks = testAxis.refreshTicks(RectangleEdge.LEFT, CustomLogarithmicAxis.VERTICAL); assertNotNull(ticks); assertEquals(19, ticks.size()); assertEquals("", ((NumberTick) ticks.get(0)).getText()); assertEquals("", ((NumberTick) ticks.get(1)).getText()); assertEquals("-10", ((NumberTick) ticks.get(7)).getText()); assertEquals("", ((NumberTick) ticks.get(9)).getText()); assertEquals("-100", ((NumberTick) ticks.get(16)).getText()); assertEquals("", ((NumberTick) ticks.get(18)).getText()); } }
? plot.getAngleOffset() : -plot.getAngleOffset(); Point p = plot.translateToJava2D(angleDegrees, tick.getNumber().doubleValue(), radialAxis, dataArea); int r = p.x - center.x; int upperLeftX = center.x - r;
private void addHorizontalTicks(RectangleEdge edge, List ticks, double lowerBoundVal, String tickLabel, double tickVal) { if (tickVal >= lowerBoundVal - SMALL_LOG_VALUE) { //tick value not below lowest data value TextAnchor anchor; TextAnchor rotationAnchor; double angle = 0.0; if (isVerticalTickLabels()) { anchor = TextAnchor.CENTER_RIGHT; rotationAnchor = TextAnchor.CENTER_RIGHT; if (edge == RectangleEdge.TOP) { angle = Math.PI / 2.0; } else { angle = -Math.PI / 2.0; } } else { if (edge == RectangleEdge.TOP) { anchor = TextAnchor.BOTTOM_CENTER; rotationAnchor = TextAnchor.BOTTOM_CENTER; } else { anchor = TextAnchor.TOP_CENTER; rotationAnchor = TextAnchor.TOP_CENTER; } } ticks.add(new NumberTick(new Double(tickVal), tickLabel, anchor, rotationAnchor, angle)); } }
@Test public void testRefreshTicksVerticalAxisOrientation() throws Exception { CustomLogarithmicAxis testAxis = new CustomLogarithmicAxis("testAxis"); testAxis.setRange(-300, -3); List ticks = testAxis.refreshTicks(RectangleEdge.LEFT, CustomLogarithmicAxis.VERTICAL); assertNotNull(ticks); assertEquals(19, ticks.size()); assertEquals("", ((NumberTick) ticks.get(0)).getText()); assertEquals("", ((NumberTick) ticks.get(1)).getText()); assertEquals("-10", ((NumberTick) ticks.get(7)).getText()); assertEquals("", ((NumberTick) ticks.get(9)).getText()); assertEquals("-100", ((NumberTick) ticks.get(16)).getText()); assertEquals("", ((NumberTick) ticks.get(18)).getText()); } }
private void addVerticalTicks(RectangleEdge edge, List ticks, double lowerBoundVal, String tickLabel, double tickVal) { if (tickVal >= lowerBoundVal - SMALL_LOG_VALUE) { //tick value not below lowest data value TextAnchor anchor; TextAnchor rotationAnchor; double angle = 0.0; if (isVerticalTickLabels()) { if (edge == RectangleEdge.LEFT) { anchor = TextAnchor.BOTTOM_CENTER; rotationAnchor = TextAnchor.BOTTOM_CENTER; angle = -Math.PI / 2.0; } else { anchor = TextAnchor.BOTTOM_CENTER; rotationAnchor = TextAnchor.BOTTOM_CENTER; angle = Math.PI / 2.0; } } else { if (edge == RectangleEdge.LEFT) { anchor = TextAnchor.CENTER_RIGHT; rotationAnchor = TextAnchor.CENTER_RIGHT; } else { anchor = TextAnchor.CENTER_LEFT; rotationAnchor = TextAnchor.CENTER_LEFT; } } //create tick object and add to list: ticks.add(new NumberTick(new Double(tickVal), tickLabel, anchor, rotationAnchor, angle)); } } }
private void addVerticalTicks(RectangleEdge edge, List ticks, double lowerBoundVal, String tickLabel, double tickVal) { if (tickVal >= lowerBoundVal - SMALL_LOG_VALUE) { //tick value not below lowest data value TextAnchor anchor; TextAnchor rotationAnchor; double angle = 0.0; if (isVerticalTickLabels()) { if (edge == RectangleEdge.LEFT) { anchor = TextAnchor.BOTTOM_CENTER; rotationAnchor = TextAnchor.BOTTOM_CENTER; angle = -Math.PI / 2.0; } else { anchor = TextAnchor.BOTTOM_CENTER; rotationAnchor = TextAnchor.BOTTOM_CENTER; angle = Math.PI / 2.0; } } else { if (edge == RectangleEdge.LEFT) { anchor = TextAnchor.CENTER_RIGHT; rotationAnchor = TextAnchor.CENTER_RIGHT; } else { anchor = TextAnchor.CENTER_LEFT; rotationAnchor = TextAnchor.CENTER_LEFT; } } //create tick object and add to list: ticks.add(new NumberTick(new Double(tickVal), tickLabel, anchor, rotationAnchor, angle)); } } }
/** * Generates a list of tick values for the angular tick marks. * * @return A list of {@link NumberTick} instances. * * @since 1.0.10 */ protected List refreshAngleTicks() { List ticks = new ArrayList(); for (double currentTickVal = 0.0; currentTickVal < 360.0; currentTickVal += this.angleTickUnit.getSize()) { TextAnchor ta = calculateTextAnchor(currentTickVal); NumberTick tick = new NumberTick(new Double(currentTickVal), this.angleTickUnit.valueToString(currentTickVal), ta, TextAnchor.CENTER, 0.0); ticks.add(tick); } return ticks; }