1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis();
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
double domainAxisDelta = domainAxis.getUpperBound()
- domainAxis.getLowerBound();
double rangeAxisDelta = rangeAxis.getUpperBound()
- rangeAxis.getLowerBound();
if (domainAxisDelta != rangeAxisDelta) { // TODO Prendre en compte le
// rapport H/L
NumberAxis axisToChange = new NumberAxis();
double axisToChangeDelta = 0D;
double newDelta = 0D;
double plotDimensionsRatio = (double) 469 / 718; // TODO Recuperer
// automatiquement
if (domainAxisDelta < rangeAxisDelta) {
axisToChange = domainAxis;
axisToChangeDelta = domainAxisDelta;
newDelta = rangeAxisDelta / plotDimensionsRatio;
} else {
axisToChange = rangeAxis;
axisToChangeDelta = rangeAxisDelta;
newDelta = domainAxisDelta * plotDimensionsRatio;
}
/*
* A quick drawing is useful to understand this calculation. The new
* range is then centered on the middle of the initial range.
*/
double newLowerBound = axisToChange.getLowerBound()
+ axisToChangeDelta / 2 - newDelta / 2;
axisToChange.setRange(newLowerBound, newLowerBound + newDelta); |
Partager