亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? abstractxyitemrenderer.java

?? jfreechart1.0.1 jsp繪制圖表的開發包
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
                                   ValueAxis axis,
                                   Rectangle2D dataArea,
                                   double start, double end) {

        double x1 = axis.valueToJava2D(
            start, dataArea, plot.getDomainAxisEdge()
        );
        double x2 = axis.valueToJava2D(
            end, dataArea, plot.getDomainAxisEdge()
        );
        // TODO: need to change the next line to take account of plot 
        //       orientation...
        Rectangle2D band = new Rectangle2D.Double(
            x1, dataArea.getMinY(), 
            x2 - x1, dataArea.getMaxY() - dataArea.getMinY()
        );
        Paint paint = plot.getDomainTickBandPaint();

        if (paint != null) {
            g2.setPaint(paint);
            g2.fill(band);
        }

    }

    /**
     * Fills a band between two values on the range axis.  This can be used to 
     * color bands between the grid lines.
     *
     * @param g2  the graphics device.
     * @param plot  the plot.
     * @param axis  the range axis.
     * @param dataArea  the data area.
     * @param start  the start value.
     * @param end  the end value.
     */
    public void fillRangeGridBand(Graphics2D g2,
                                  XYPlot plot,
                                  ValueAxis axis,
                                  Rectangle2D dataArea,
                                  double start, double end) {

        double y1 = axis.valueToJava2D(
            start, dataArea, plot.getRangeAxisEdge()
        );
        double y2 = axis.valueToJava2D(end, dataArea, plot.getRangeAxisEdge());
        // TODO: need to change the next line to take account of the plot 
        //       orientation
        Rectangle2D band = new Rectangle2D.Double(
            dataArea.getMinX(), y2, dataArea.getWidth(), y1 - y2
        );
        Paint paint = plot.getRangeTickBandPaint();

        if (paint != null) {
            g2.setPaint(paint);
            g2.fill(band);
        }

    }

    /**
     * Draws a grid line against the range axis.
     *
     * @param g2  the graphics device.
     * @param plot  the plot.
     * @param axis  the value axis.
     * @param dataArea  the area for plotting data (not yet adjusted for any 
     *                  3D effect).
     * @param value  the value at which the grid line should be drawn.
     */
    public void drawDomainGridLine(Graphics2D g2,
                                   XYPlot plot,
                                   ValueAxis axis,
                                   Rectangle2D dataArea,
                                   double value) {

        Range range = axis.getRange();
        if (!range.contains(value)) {
            return;
        }

        PlotOrientation orientation = plot.getOrientation();
        double v = axis.valueToJava2D(
            value, dataArea, plot.getDomainAxisEdge()
        );
        Line2D line = null;
        if (orientation == PlotOrientation.HORIZONTAL) {
            line = new Line2D.Double(
                dataArea.getMinX(), v, dataArea.getMaxX(), v
            );
        }
        else if (orientation == PlotOrientation.VERTICAL) {
            line = new Line2D.Double(
                v, dataArea.getMinY(), v, dataArea.getMaxY()
            );
        }

        Paint paint = plot.getDomainGridlinePaint();
        Stroke stroke = plot.getDomainGridlineStroke();
        g2.setPaint(paint != null ? paint : Plot.DEFAULT_OUTLINE_PAINT);
        g2.setStroke(stroke != null ? stroke : Plot.DEFAULT_OUTLINE_STROKE);
        g2.draw(line);

    }

    /**
     * Draws a line perpendicular to the range axis.
     *
     * @param g2  the graphics device.
     * @param plot  the plot.
     * @param axis  the value axis.
     * @param dataArea  the area for plotting data (not yet adjusted for any 3D
     *                  effect).
     * @param value  the value at which the grid line should be drawn.
     * @param paint  the paint.
     * @param stroke  the stroke.
     */
    public void drawRangeLine(Graphics2D g2,
                              XYPlot plot,
                              ValueAxis axis,
                              Rectangle2D dataArea,
                              double value,
                              Paint paint,
                              Stroke stroke) {

        Range range = axis.getRange();
        if (!range.contains(value)) {
            return;
        }

        PlotOrientation orientation = plot.getOrientation();
        Line2D line = null;
        double v = axis.valueToJava2D(value, dataArea, plot.getRangeAxisEdge());
        if (orientation == PlotOrientation.HORIZONTAL) {
            line = new Line2D.Double(
                v, dataArea.getMinY(), v, dataArea.getMaxY()
            );
        }
        else if (orientation == PlotOrientation.VERTICAL) {
            line = new Line2D.Double(
                dataArea.getMinX(), v, dataArea.getMaxX(), v
            );
        }
        
        g2.setPaint(paint);
        g2.setStroke(stroke);
        g2.draw(line);

    }

    /**
     * Draws a vertical line on the chart to represent a 'range marker'.
     *
     * @param g2  the graphics device.
     * @param plot  the plot.
     * @param domainAxis  the domain axis.
     * @param marker  the marker line.
     * @param dataArea  the axis data area.
     */
    public void drawDomainMarker(Graphics2D g2,
                                 XYPlot plot,
                                 ValueAxis domainAxis,
                                 Marker marker,
                                 Rectangle2D dataArea) {

        if (marker instanceof ValueMarker) {
            ValueMarker vm = (ValueMarker) marker;
            double value = vm.getValue();
            Range range = domainAxis.getRange();
            if (!range.contains(value)) {
                return;
            }

            double v = domainAxis.valueToJava2D(
                value, dataArea, plot.getDomainAxisEdge()
            );

            PlotOrientation orientation = plot.getOrientation();
            Line2D line = null;
            if (orientation == PlotOrientation.HORIZONTAL) {
                line = new Line2D.Double(
                    dataArea.getMinX(), v, dataArea.getMaxX(), v
                );
            }
            else if (orientation == PlotOrientation.VERTICAL) {
                line = new Line2D.Double(
                    v, dataArea.getMinY(), v, dataArea.getMaxY()
                );
            }

            g2.setPaint(marker.getPaint());
            g2.setStroke(marker.getStroke());
            g2.draw(line);

            String label = marker.getLabel();
            RectangleAnchor anchor = marker.getLabelAnchor();
            if (label != null) {
                Font labelFont = marker.getLabelFont();
                g2.setFont(labelFont);
                g2.setPaint(marker.getLabelPaint());
                Point2D coordinates = calculateDomainMarkerTextAnchorPoint(
                    g2, orientation, dataArea, line.getBounds2D(), 
                    marker.getLabelOffset(), 
                    LengthAdjustmentType.EXPAND, anchor
                );
                TextUtilities.drawAlignedString(
                    label, g2, 
                    (float) coordinates.getX(), (float) coordinates.getY(), 
                    marker.getLabelTextAnchor()
                );
            }
        }
        else if (marker instanceof IntervalMarker) {
            IntervalMarker im = (IntervalMarker) marker;
            double start = im.getStartValue();
            double end = im.getEndValue();
            Range range = domainAxis.getRange();
            if (!(range.intersects(start, end))) {
                return;
            }

            // don't draw beyond the axis range...
            start = range.constrain(start);
            end = range.constrain(end);

            double v0 = domainAxis.valueToJava2D(
                start, dataArea, plot.getDomainAxisEdge()
            );
            double v1 = domainAxis.valueToJava2D(
                end, dataArea, plot.getDomainAxisEdge()
            );

            PlotOrientation orientation = plot.getOrientation();
            Rectangle2D rect = null;
            if (orientation == PlotOrientation.HORIZONTAL) {
                rect = new Rectangle2D.Double(
                    dataArea.getMinX(), Math.min(v0, v1), 
                    dataArea.getWidth(), Math.abs(v1 - v0)
                );
            }
            else if (orientation == PlotOrientation.VERTICAL) {
                rect = new Rectangle2D.Double(
                    Math.min(v0, v1), dataArea.getMinY(), 
                    Math.abs(v1 - v0), dataArea.getHeight()
                );
            }

            Paint p = marker.getPaint();
            if (p instanceof GradientPaint) {
                GradientPaint gp = (GradientPaint) p;
                GradientPaintTransformer t = im.getGradientPaintTransformer();
                if (t != null) {
                    gp = t.transform(gp, rect);  
                }
                g2.setPaint(gp);
            }
            else {
                g2.setPaint(p);
            }
            g2.fill(rect);

            String label = marker.getLabel();
            RectangleAnchor anchor = marker.getLabelAnchor();
            if (label != null) {
                Font labelFont = marker.getLabelFont();
                g2.setFont(labelFont);
                g2.setPaint(marker.getLabelPaint());
                Point2D coordinates = calculateDomainMarkerTextAnchorPoint(
                    g2, orientation, dataArea, rect, marker.getLabelOffset(), 
                    marker.getLabelOffsetType(), anchor
                );
                TextUtilities.drawAlignedString(
                    label, g2, (float) coordinates.getX(), 
                    (float) coordinates.getY(), 
                    marker.getLabelTextAnchor()
                );
            }

        }

    }

    /**
     * Calculates the (x, y) coordinates for drawing a marker label.
     *
     * @param g2  the graphics device.
     * @param orientation  the plot orientation.
     * @param dataArea  the data area.
     * @param markerArea  the rectangle surrounding the marker area.
     * @param markerOffset  the marker label offset.
     * @param labelOffsetType  the label offset type.
     * @param anchor  the label anchor.
     *
     * @return The coordinates for drawing the marker label.
     */
    protected Point2D calculateDomainMarkerTextAnchorPoint(Graphics2D g2,
            PlotOrientation orientation,
            Rectangle2D dataArea,
            Rectangle2D markerArea,
            RectangleInsets markerOffset,
            LengthAdjustmentType labelOffsetType,
            RectangleAnchor anchor) {

        Rectangle2D anchorRect = null;
        if (orientation == PlotOrientation.HORIZONTAL) {
            anchorRect = markerOffset.createAdjustedRectangle(
                markerArea, LengthAdjustmentType.CONTRACT, labelOffsetType
            );
        }
        else if (orientation == PlotOrientation.VERTICAL) {
            anchorRect = markerOffset.createAdjustedRectangle(
                markerArea, labelOffsetType, LengthAdjustmentType.CONTRACT
            );
        }
        return RectangleAnchor.coordinates(anchorRect, anchor);

    }

    /**
     * Draws a horizontal line across the chart to represent a 'range marker'.
     *
     * @param g2  the graphics device.
     * @param plot  the plot.
     * @param rangeAxis  the range axis.
     * @param marker  the marker line.
     * @param dataArea  the axis data area.
     */
    public void drawRangeMarker(Graphics2D g2,
                                XYPlot plot,
                                ValueAxis rangeAxis,
                                Marker marker,
                                Rectangle2D dataArea) {

        if (marker instanceof ValueMarker) {
            ValueMarker vm = (ValueMarker) marker;
            double value = vm.getValue();
            Range range = rangeAxis.getRange();
            if (!range.contains(value)) {
                return;
            }

            double v = rangeAxis.valueToJava2D(
                value, dataArea, plot.getRangeAxisEdge()
            );
            PlotOrientation orientation = plot.getOrientation();
            Line2D line = null;
            if (orientation == PlotOrientation.HORIZONTAL) {
                line = new Line2D.Double(
                    v, dataArea.getMinY(), v, dataArea.getMaxY()
                );
            }
            else if (orientation == PlotOrientation.VERTICAL) {
                line = new Line2D.Double(
                    dataArea.getMinX(), v, dataArea.getMaxX(), v
                );
            }
            g2.setPaint(marker.getPaint());
            g2.setStroke(marker.getStroke());
            g2.draw(line);

            String label = marker.getLabel();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久99精品免费观看不卡| 欧美亚洲丝袜传媒另类| 同产精品九九九| 亚洲乱码国产乱码精品精98午夜| 久久综合国产精品| 26uuu久久综合| 欧美激情一二三区| 成人欧美一区二区三区白人| 国产精品福利一区二区| 一区二区三区在线视频观看58 | 成人深夜福利app| 国产盗摄一区二区| 成人福利视频在线| 色综合中文字幕| 欧美日韩国产一级二级| 3d动漫精品啪啪1区2区免费| 欧美电影免费提供在线观看| 久久久久成人黄色影片| 国产欧美日韩麻豆91| 亚洲三级在线免费| 亚洲国产日韩在线一区模特| 日本不卡一二三区黄网| 国产精品白丝av| 一本久道久久综合中文字幕 | 日韩午夜电影在线观看| 久久久久国产精品厨房| 亚洲免费视频中文字幕| 奇米亚洲午夜久久精品| 成人妖精视频yjsp地址| 欧美性生活影院| 日韩精品综合一本久道在线视频| 久久久不卡网国产精品二区| 亚洲黄色在线视频| 极品少妇xxxx精品少妇偷拍| 色94色欧美sute亚洲线路二| 欧美一级黄色录像| 国产精品三级在线观看| 亚洲成av人片观看| 国产成人激情av| 欧美日韩亚洲不卡| 国产精品私房写真福利视频| 五月婷婷综合网| 高清不卡在线观看| 欧美二区乱c少妇| 中文字幕精品三区| 久久国产婷婷国产香蕉| 在线观看国产91| 国产精品美女一区二区三区| 日本vs亚洲vs韩国一区三区 | 亚洲成人一区二区在线观看| 黄色资源网久久资源365| 色拍拍在线精品视频8848| 久久午夜电影网| 日韩精品乱码av一区二区| 91色乱码一区二区三区| 久久久久国产一区二区三区四区| 日韩高清在线不卡| 91香蕉国产在线观看软件| 国产日韩欧美综合在线| 激情丁香综合五月| 91精品蜜臀在线一区尤物| 亚洲靠逼com| 99热99精品| 国产三级一区二区| 国产伦理精品不卡| 日韩欧美亚洲国产精品字幕久久久| 一区二区三区四区视频精品免费| 成人国产精品免费观看| 国产精品欧美一级免费| 成人在线综合网站| 国产日韩高清在线| 国产精品性做久久久久久| 精品国产一区二区三区忘忧草| 天天影视网天天综合色在线播放| 欧美人与禽zozo性伦| 亚洲国产色一区| 欧美精品tushy高清| 天堂va蜜桃一区二区三区 | 国产精品18久久久| 国产亚洲欧洲997久久综合| 国产精品综合av一区二区国产馆| 日韩亚洲欧美综合| 久久99热狠狠色一区二区| 精品欧美乱码久久久久久| 激情久久五月天| 国产精品嫩草影院av蜜臀| 99re亚洲国产精品| 亚洲区小说区图片区qvod| 91国内精品野花午夜精品| 亚洲va欧美va国产va天堂影院| 欧美三级资源在线| 男人操女人的视频在线观看欧美 | 91亚洲精品久久久蜜桃网站| 亚洲裸体xxx| 在线成人午夜影院| 美女www一区二区| 国产精品女主播在线观看| 日本精品视频一区二区| 丝袜亚洲另类欧美| 精品国产一区二区三区久久久蜜月| 国产一区亚洲一区| 日韩美女啊v在线免费观看| 在线视频欧美精品| 免费黄网站欧美| 国产精品青草综合久久久久99| 欧美无砖专区一中文字| 加勒比av一区二区| 亚洲精品日产精品乱码不卡| 在线播放国产精品二区一二区四区| 韩国视频一区二区| 一区二区三区视频在线观看| 日韩精品一区国产麻豆| a亚洲天堂av| 玖玖九九国产精品| 一区二区三区国产精品| 久久久久久久综合日本| 欧美亚洲禁片免费| 国产精品系列在线观看| 亚洲一区二区精品3399| 久久精品日产第一区二区三区高清版 | 国产在线精品一区二区三区不卡 | 一区av在线播放| 久久综合999| 欧美视频在线一区| 岛国一区二区在线观看| 蜜臀av性久久久久蜜臀av麻豆| 亚洲日本电影在线| 久久久久久亚洲综合| 91精品国产乱| 在线免费一区三区| 国产成人在线看| 免费在线观看日韩欧美| 亚洲欧美电影一区二区| 久久麻豆一区二区| 日韩欧美在线综合网| 在线这里只有精品| 91网站最新地址| 成人久久视频在线观看| 国产综合色在线| 日韩不卡一区二区三区| 亚洲一区二区三区免费视频| 中文字幕人成不卡一区| 日本一区二区三区久久久久久久久不 | 精品欧美久久久| 91精品久久久久久久久99蜜臂| 色94色欧美sute亚洲13| 99国产精品久久久久久久久久久| 精品综合久久久久久8888| 免播放器亚洲一区| 日本午夜一本久久久综合| 天堂va蜜桃一区二区三区漫画版| 亚洲中国最大av网站| 亚洲一区二区五区| 一区二区久久久久久| 一区二区三区国产| 亚洲成av人在线观看| 亚洲第四色夜色| 免费看黄色91| 精品中文字幕一区二区小辣椒| 久久99最新地址| 国产黑丝在线一区二区三区| 国产91综合网| 99精品国产99久久久久久白柏| 91麻豆精东视频| 欧美日韩久久久一区| 日韩一本二本av| 国产视频视频一区| 国产精品美日韩| 亚洲国产一二三| 久久精品国产99| 成人av电影免费观看| 欧日韩精品视频| 日韩手机在线导航| 国产女主播视频一区二区| 亚洲乱码日产精品bd| 日韩高清一区在线| 懂色av中文一区二区三区| 91猫先生在线| 欧美一区二区三区性视频| 久久久影院官网| 一区二区三区在线免费视频| 男男视频亚洲欧美| av午夜精品一区二区三区| 精品视频一区二区不卡| 欧美va在线播放| 亚洲欧美色综合| 麻豆一区二区三区| 99在线精品视频| 欧美成人性福生活免费看| 国产欧美日韩精品在线| 午夜精品在线看| 99久久综合精品| 精品欧美久久久| 亚洲丰满少妇videoshd| 国产激情视频一区二区在线观看| 欧美亚男人的天堂| 国产精品久久久久婷婷二区次| 香蕉成人伊视频在线观看| 北条麻妃一区二区三区| 日韩亚洲欧美在线观看|