⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 numberaxis.java

📁 这是一个segy数据显示程序
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
    /**     * Sets the marker band for the axis.     * <P>     * The marker band is optional, leave it set to <code>null</code> if you don't require it.     *     * @param band the new band (<code>null<code> permitted).     */    public void setMarkerBand(MarkerAxisBand band) {        this.markerBand = band;        notifyListeners(new AxisChangeEvent(this));    }    /**     * Configures the axis to work with the specified plot.  If the axis has     * auto-scaling, then sets the maximum and minimum values.     */    public void configure() {        if (isAutoRange()) {            autoAdjustRange();        }    }    /**     * Rescales the axis to ensure that all data is visible.     */    protected void autoAdjustRange() {        Plot plot = getPlot();        if (plot == null) {            return;  // no plot, no data        }        if (plot instanceof ValueAxisPlot) {            ValueAxisPlot vap = (ValueAxisPlot) plot;            Range r = vap.getDataRange(this);            if (r == null) {                r = new Range(DEFAULT_LOWER_BOUND, DEFAULT_UPPER_BOUND);            }                        double upper = r.getUpperBound();            double lower = r.getLowerBound();            if (autoRangeIncludesZero()) {                lower = Math.min(lower, 0.0);                upper = Math.max(upper, 0.0);            }            double range = upper - lower;            // if fixed auto range, then derive lower bound...            double fixedAutoRange = getFixedAutoRange();            if (fixedAutoRange > 0.0) {                lower = upper - fixedAutoRange;            }            else {                // ensure the autorange is at least <minRange> in size...                double minRange = getAutoRangeMinimumSize();                if (range < minRange) {                    double expand = (minRange - range) / 2;                    upper = upper + expand;                    lower = lower - expand;                }                if (autoRangeStickyZero()) {                    if (upper <= 0.0) {                        upper = Math.min(0.0, upper + getUpperMargin() * range);                    }                    else {                        upper = upper + getUpperMargin() * range;                    }                    if (lower >= 0.0) {                        lower = Math.max(0.0, lower - getLowerMargin() * range);                    }                    else {                        lower = lower - getLowerMargin() * range;                    }                }                else {                    upper = upper + getUpperMargin() * range;                    lower = lower - getLowerMargin() * range;                }            }            setRange(new Range(lower, upper), false, false);        }    }    /**     * Converts a data value to a coordinate in Java2D space, assuming that the     * axis runs along one edge of the specified dataArea.     * <p>     * Note that it is possible for the coordinate to fall outside the plotArea.     *     * @param value  the data value.     * @param area  the area for plotting the data.     * @param edge  the axis location.     *     * @return The Java2D coordinate.     *      * @deprecated Use valueToJava2D() instead.     */    public double translateValueToJava2D(double value, Rectangle2D area, RectangleEdge edge) {        return valueToJava2D(value, area, edge);    }        /**     * Converts a data value to a coordinate in Java2D space, assuming that the     * axis runs along one edge of the specified dataArea.     * <p>     * Note that it is possible for the coordinate to fall outside the plotArea.     *     * @param value  the data value.     * @param area  the area for plotting the data.     * @param edge  the axis location.     *     * @return The Java2D coordinate.     */    public double valueToJava2D(double value, Rectangle2D area, RectangleEdge edge) {                Range range = getRange();        double axisMin = range.getLowerBound();        double axisMax = range.getUpperBound();        double min = 0.0;        double max = 0.0;        if (RectangleEdge.isTopOrBottom(edge)) {            min = area.getX();            max = area.getMaxX();        }        else if (RectangleEdge.isLeftOrRight(edge)) {            max = area.getMinY();            min = area.getMaxY();        }        if (isInverted()) {            return max - ((value - axisMin) / (axisMax - axisMin)) * (max - min);        }        else {            return min + ((value - axisMin) / (axisMax - axisMin)) * (max - min);        }    }    /**     * Converts a coordinate in Java2D space to the corresponding data value,     * assuming that the axis runs along one edge of the specified dataArea.     *     * @param java2DValue  the coordinate in Java2D space.     * @param area  the area in which the data is plotted.     * @param edge  the location.     *     * @return The data value.     *      * @deprecated Use java2DToValue() instead.     */    public double translateJava2DToValue(double java2DValue, Rectangle2D area, RectangleEdge edge) {        return java2DToValue(java2DValue, area, edge);    }        /**     * Converts a coordinate in Java2D space to the corresponding data value,     * assuming that the axis runs along one edge of the specified dataArea.     *     * @param java2DValue  the coordinate in Java2D space.     * @param area  the area in which the data is plotted.     * @param edge  the location.     *     * @return The data value.     */    public double java2DToValue(double java2DValue, Rectangle2D area, RectangleEdge edge) {                Range range = getRange();        double axisMin = range.getLowerBound();        double axisMax = range.getUpperBound();        double min = 0.0;        double max = 0.0;        if (RectangleEdge.isTopOrBottom(edge)) {            min = area.getX();            max = area.getMaxX();        }        else if (RectangleEdge.isLeftOrRight(edge)) {            min = area.getMaxY();            max = area.getY();        }        if (isInverted()) {            return axisMax - (java2DValue - min) / (max - min) * (axisMax - axisMin);        }        else {            return axisMin + (java2DValue - min) / (max - min) * (axisMax - axisMin);        }    }    /**     * Calculates the value of the lowest visible tick on the axis.     *     * @return the value of the lowest visible tick on the axis.     */    public double calculateLowestVisibleTickValue() {        double unit = getTickUnit().getSize();        double index = Math.ceil(getRange().getLowerBound() / unit);        return index * unit;    }    /**     * Calculates the value of the highest visible tick on the axis.     *     * @return the value of the highest visible tick on the axis.     */    public double calculateHighestVisibleTickValue() {        double unit = getTickUnit().getSize();        double index = Math.floor(getRange().getUpperBound() / unit);        return index * unit;    }    /**     * Calculates the number of visible ticks.     *     * @return the number of visible ticks on the axis.     */    public int calculateVisibleTickCount() {        double unit = getTickUnit().getSize();        Range range = getRange();        return (int) (Math.floor(range.getUpperBound() / unit)                      - Math.ceil(range.getLowerBound() / unit) + 1);    }    /**     * Draws the axis on a Java 2D graphics device (such as the screen or a printer).     *     * @param g2  the graphics device (<code>null</code> not permitted).     * @param cursor  the cursor location.     * @param plotArea  the area within which the axes and data should be drawn (<code>null</code>      *                  not permitted).     * @param dataArea  the area within which the data should be drawn (<code>null</code> not      *                  permitted).     * @param edge  the location of the axis (<code>null</code> not permitted).     * @param plotState  collects information about the plot (<code>null</code> permitted).     *      * @return the axis state (never <code>null</code>).     */    public AxisState draw(Graphics2D g2,                           double cursor,                          Rectangle2D plotArea,                           Rectangle2D dataArea,                           RectangleEdge edge,                          PlotRenderingInfo plotState) {        AxisState state = null;        // if the axis is not visible, don't draw it...        if (!isVisible()) {            state = new AxisState(cursor);            // even though the axis is not visible, we need ticks for the gridlines...            List ticks = refreshTicks(g2, state, plotArea, dataArea, edge);             state.setTicks(ticks);            return state;        }        // draw the tick marks and labels...        state = drawTickMarksAndLabels(g2, cursor, plotArea, dataArea, edge);//        // draw the marker band (if there is one)...//        if (getMarkerBand() != null) {//            if (edge == RectangleEdge.BOTTOM) {//                cursor = cursor - getMarkerBand().getHeight(g2);//            }//            getMarkerBand().draw(g2, plotArea, dataArea, 0, cursor);//        }                // draw the axis label...        state = drawLabel(getLabel(), g2, plotArea, dataArea, edge, state);        return state;            }    /**     * Creates the standard tick units.     * <P>     * If you don't like these defaults, create your own instance of TickUnits     * and then pass it to the setStandardTickUnits(...) method in the     * NumberAxis class.     *     * @return the standard tick units.     */    public static TickUnitSource createStandardTickUnits() {        TickUnits units = new TickUnits();        // we can add the units in any order, the TickUnits collection will sort them...        units.add(new NumberTickUnit(0.0000001,    new DecimalFormat("0.0000000")));        units.add(new NumberTickUnit(0.000001,     new DecimalFormat("0.000000")));        units.add(new NumberTickUnit(0.00001,      new DecimalFormat("0.00000")));        units.add(new NumberTickUnit(0.0001,       new DecimalFormat("0.0000")));        units.add(new NumberTickUnit(0.001,        new DecimalFormat("0.000")));        units.add(new NumberTickUnit(0.01,         new DecimalFormat("0.00")));        units.add(new NumberTickUnit(0.1,          new DecimalFormat("0.0")));        units.add(new NumberTickUnit(1,            new DecimalFormat("0")));        units.add(new NumberTickUnit(10,           new DecimalFormat("0")));        units.add(new NumberTickUnit(100,          new DecimalFormat("0")));        units.add(new NumberTickUnit(1000,         new DecimalFormat("#,##0")));        units.add(new NumberTickUnit(10000,        new DecimalFormat("#,##0")));        units.add(new NumberTickUnit(100000,       new DecimalFormat("#,##0")));        units.add(new NumberTickUnit(1000000,      new DecimalFormat("#,###,##0")));        units.add(new NumberTickUnit(10000000,     new DecimalFormat("#,###,##0")));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -