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

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

?? standardxyitemrenderer.java

?? jfreechart1.0.1 jsp繪制圖表的開發包
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
                         Rectangle2D dataArea,
                         PlotRenderingInfo info,
                         XYPlot plot,
                         ValueAxis domainAxis,
                         ValueAxis rangeAxis,
                         XYDataset dataset,
                         int series,
                         int item,
                         CrosshairState crosshairState,
                         int pass) {

        if (!getItemVisible(series, item)) {
            return;   
        }
        // setup for collecting optional entity info...
        Shape entityArea = null;
        EntityCollection entities = null;
        if (info != null) {
            entities = info.getOwner().getEntityCollection();
        }

        PlotOrientation orientation = plot.getOrientation();
        Paint paint = getItemPaint(series, item);
        Stroke seriesStroke = getItemStroke(series, item);
        g2.setPaint(paint);
        g2.setStroke(seriesStroke);

        // get the data point...
        double x1 = dataset.getXValue(series, item);
        double y1 = dataset.getYValue(series, item);
        if (Double.isNaN(x1) || Double.isNaN(y1)) {
            return;
        }

        RectangleEdge xAxisLocation = plot.getDomainAxisEdge();
        RectangleEdge yAxisLocation = plot.getRangeAxisEdge();
        double transX1 = domainAxis.valueToJava2D(x1, dataArea, xAxisLocation);
        double transY1 = rangeAxis.valueToJava2D(y1, dataArea, yAxisLocation);

        if (getPlotLines()) {
            if (item == 0) {
                if (this.drawSeriesLineAsPath) {
                    State s = (State) state;        
                    s.seriesPath.reset();
                    s.lastPointGood = false;     
                }
            }
           
            if (this.drawSeriesLineAsPath) {
                State s = (State) state;
                // update path to reflect latest point
                if (!Double.isNaN(transX1) && !Double.isNaN(transY1)) {
                    float x = (float) transX1;
                    float y = (float) transY1;
                    if (orientation == PlotOrientation.HORIZONTAL) {
                        x = (float) transY1;
                        y = (float) transX1;
                    }
                    if (s.isLastPointGood()) {
                        // TODO: check threshold
                        s.seriesPath.lineTo(x, y);
                    }
                    else {
                        s.seriesPath.moveTo(x, y);
                    }
                    s.setLastPointGood(true);
                }
                else {
                    s.setLastPointGood(false);
                }
                if (item == dataset.getItemCount(series) - 1) {
                    // draw path
                    g2.setStroke(getSeriesStroke(series));
                    g2.setPaint(getSeriesPaint(series));
                    g2.draw(s.seriesPath);
                }
            }

            else if (item != 0) {
                // get the previous data point...
                double x0 = dataset.getXValue(series, item - 1);
                double y0 = dataset.getYValue(series, item - 1);
                if (!Double.isNaN(x0) && !Double.isNaN(y0)) {
                    boolean drawLine = true;
                    if (getPlotDiscontinuous()) {
                        // only draw a line if the gap between the current and 
                        // previous data point is within the threshold
                        int numX = dataset.getItemCount(series);
                        double minX = dataset.getXValue(series, 0);
                        double maxX = dataset.getXValue(series, numX - 1);
                        if (this.gapThresholdType == UnitType.ABSOLUTE) {
                            drawLine = Math.abs(x1 - x0) <= this.gapThreshold;
                        }
                        else {
                            drawLine = Math.abs(x1 - x0) <= ((maxX - minX) 
                                / numX * getGapThreshold());
                        }
                    }
                    if (drawLine) {
                        double transX0 = domainAxis.valueToJava2D(
                            x0, dataArea, xAxisLocation
                        );
                        double transY0 = rangeAxis.valueToJava2D(
                            y0, dataArea, yAxisLocation
                        );

                        // only draw if we have good values
                        if (Double.isNaN(transX0) || Double.isNaN(transY0) 
                            || Double.isNaN(transX1) || Double.isNaN(transY1)) {
                            return;
                        }

                        if (orientation == PlotOrientation.HORIZONTAL) {
                            state.workingLine.setLine(
                                transY0, transX0, transY1, transX1
                            );
                        }
                        else if (orientation == PlotOrientation.VERTICAL) {
                            state.workingLine.setLine(
                                transX0, transY0, transX1, transY1
                            );
                        }

                        if (state.workingLine.intersects(dataArea)) {
                            g2.draw(state.workingLine);
                        }
                    }
                }
            }
        }

        if (getBaseShapesVisible()) {

            Shape shape = getItemShape(series, item);
            if (orientation == PlotOrientation.HORIZONTAL) {
                shape = ShapeUtilities.createTranslatedShape(
                    shape, transY1, transX1
                );
            }
            else if (orientation == PlotOrientation.VERTICAL) {
                shape = ShapeUtilities.createTranslatedShape(
                    shape, transX1, transY1
                );
            }
            if (shape.intersects(dataArea)) {
                if (getItemShapeFilled(series, item)) {
                    g2.fill(shape);
                }
                else {
                    g2.draw(shape);
                }
            }
            entityArea = shape;

        }

        if (getPlotImages()) {
            Image image = getImage(plot, series, item, transX1, transY1);
            if (image != null) {
                Point hotspot = getImageHotspot(
                    plot, series, item, transX1, transY1, image
                );
                g2.drawImage(
                    image, (int) (transX1 - hotspot.getX()), 
                    (int) (transY1 - hotspot.getY()), null
                );
                entityArea = new Rectangle2D.Double(
                    transX1 - hotspot.getX(), transY1 - hotspot.getY(),
                    image.getWidth(null), image.getHeight(null)
                );
            }

        }

        // draw the item label if there is one...
        if (isItemLabelVisible(series, item)) {
            double xx = transX1;
            double yy = transY1;
            if (orientation == PlotOrientation.HORIZONTAL) {
                xx = transY1;
                yy = transX1;
            }          
            drawItemLabel(
                g2, orientation, dataset, series, item, xx, yy, (y1 < 0.0)
            );
        }

        updateCrosshairValues(
            crosshairState, x1, y1, transX1, transY1, orientation
        );

        // add an entity for the item...
        if (entities != null) {
            addEntity(
                entities, entityArea, dataset, series, item, transX1, transY1
            );
        }

    }

    /**
     * Tests this renderer for equality with another object.
     *
     * @param obj  the object (<code>null</code> permitted).
     *
     * @return A boolean.
     */
    public boolean equals(Object obj) {

        if (obj == this) {
            return true;
        }
        if (!(obj instanceof StandardXYItemRenderer)) {
            return false;
        }
        if (!super.equals(obj)) {
            return false;
        }
        StandardXYItemRenderer that = (StandardXYItemRenderer) obj;
        if (this.baseShapesVisible != that.baseShapesVisible) {
            return false;
        }
        if (this.plotLines != that.plotLines) {
            return false;
        }
        if (this.plotImages != that.plotImages) {
            return false;
        }
        if (this.plotDiscontinuous != that.plotDiscontinuous) {
            return false;
        }
        if (this.gapThresholdType != that.gapThresholdType) {
            return false;
        }
        if (this.gapThreshold != that.gapThreshold) {
            return false;
        }
        if (!ObjectUtilities.equal(this.shapesFilled, that.shapesFilled)) {
            return false;
        }
        if (!ShapeUtilities.equal(this.legendLine, that.legendLine)) {
            return false;   
        }
        return true;

    }

    /**
     * Returns a clone of the renderer.
     *
     * @return A clone.
     *
     * @throws CloneNotSupportedException  if the renderer cannot be cloned.
     */
    public Object clone() throws CloneNotSupportedException {
        return super.clone();
    }

    ////////////////////////////////////////////////////////////////////////////
    // PROTECTED METHODS
    // These provide the opportunity to subclass the standard renderer and 
    // create custom effects.
    ////////////////////////////////////////////////////////////////////////////

    /**
     * Returns the image used to draw a single data item.
     *
     * @param plot  the plot (can be used to obtain standard color information 
     *              etc).
     * @param series  the series index.
     * @param item  the item index.
     * @param x  the x value of the item.
     * @param y  the y value of the item.
     *
     * @return The image.
     */
    protected Image getImage(Plot plot, int series, int item, 
                             double x, double y) {
        // should this be added to the plot as well ?
        // return plot.getShape(series, item, x, y, scale);
        // or should this be left to the user - like this:
        return null;
    }

    /**
     * Returns the hotspot of the image used to draw a single data item.
     * The hotspot is the point relative to the top left of the image
     * that should indicate the data item. The default is the center of the
     * image.
     *
     * @param plot  the plot (can be used to obtain standard color information 
     *              etc).
     * @param image  the image (can be used to get size information about the 
     *               image)
     * @param series  the series index
     * @param item  the item index
     * @param x  the x value of the item
     * @param y  the y value of the item
     *
     * @return The hotspot used to draw the data item.
     */
    protected Point getImageHotspot(Plot plot, int series, int item,
                                    double x, double y, Image image) {

        int height = image.getHeight(null);
        int width = image.getWidth(null);
        return new Point(width / 2, height / 2);

    }
    
    /**
     * Provides serialization support.
     *
     * @param stream  the input stream.
     *
     * @throws IOException  if there is an I/O error.
     * @throws ClassNotFoundException  if there is a classpath problem.
     */
    private void readObject(ObjectInputStream stream) 
            throws IOException, ClassNotFoundException {
        stream.defaultReadObject();
        this.legendLine = SerialUtilities.readShape(stream);
    }
    
    /**
     * Provides serialization support.
     *
     * @param stream  the output stream.
     *
     * @throws IOException  if there is an I/O error.
     */
    private void writeObject(ObjectOutputStream stream) throws IOException {
        stream.defaultWriteObject();
        SerialUtilities.writeShape(this.legendLine, stream);
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆精品国产91久久久使用方法 | 欧美精品日韩综合在线| 欧美一卡2卡三卡4卡5免费| 国产欧美日韩不卡| 全国精品久久少妇| 色综合视频在线观看| 日韩欧美一级二级| 亚洲成人黄色影院| 91国内精品野花午夜精品| 久久综合九色综合97婷婷女人| 亚洲国产精品人人做人人爽| av不卡在线观看| 国产亚洲欧美日韩在线一区| 免费欧美在线视频| 91精品久久久久久久久99蜜臂| 亚洲欧美国产三级| 成人国产精品免费观看动漫| 精品国产伦一区二区三区观看方式| 亚洲麻豆国产自偷在线| 成人做爰69片免费看网站| 伊人性伊人情综合网| 国内精品国产成人国产三级粉色| 欧美亚日韩国产aⅴ精品中极品| 亚洲国产高清不卡| 成人一区在线观看| 久久精子c满五个校花| 久久成人免费日本黄色| 日韩一区二区三区av| 亚洲成人动漫在线观看| 欧美亚洲综合色| 亚洲裸体xxx| 91麻豆文化传媒在线观看| 国产精品久久久久久久久晋中| 国产成人aaa| 亚洲欧洲99久久| 91原创在线视频| 亚洲一区二区三区影院| 欧美日韩午夜在线| 日韩电影在线观看网站| 日韩免费视频线观看| 久久电影网电视剧免费观看| 久久人人爽人人爽| 成人一区二区三区视频在线观看 | 国产精品一区二区三区乱码| 精品少妇一区二区三区视频免付费 | 国产成人av电影在线| 国产精品久久毛片av大全日韩| 国产成人av一区二区| 国产精品久久久久久久久晋中 | 五月天激情小说综合| 91精品国产综合久久精品性色| 日本不卡视频在线观看| 精品欧美久久久| 成人免费视频一区二区| 亚洲精品一二三区| 宅男在线国产精品| 国产成人在线观看免费网站| 亚洲欧美中日韩| 欧美日韩国产免费一区二区| 国产在线日韩欧美| 亚洲男同性视频| 日韩一区二区三区视频在线| 国产精品一级二级三级| 一级精品视频在线观看宜春院| 欧美一级高清片| 成人h精品动漫一区二区三区| 亚洲综合清纯丝袜自拍| 欧美第一区第二区| 99国产精品国产精品久久| 视频在线观看一区二区三区| 国产三级精品视频| 欧美剧在线免费观看网站| 岛国av在线一区| 日日欢夜夜爽一区| 成人免费一区二区三区在线观看 | 26uuu欧美日本| 在线观看91精品国产入口| 韩国一区二区视频| 亚洲高清视频在线| 国产精品久久久久永久免费观看 | 日韩一卡二卡三卡国产欧美| 丁香一区二区三区| 蜜桃视频在线观看一区二区| 亚洲精选视频免费看| 国产视频一区二区在线观看| 欧美男人的天堂一二区| 成人国产精品免费观看视频| 久久成人免费网站| 日韩高清国产一区在线| 成人欧美一区二区三区1314| 欧美精品一区二区久久婷婷| 欧美日韩免费一区二区三区 | 亚洲蜜臀av乱码久久精品| 久久这里都是精品| 欧美一区二区三区四区五区| 色女孩综合影院| 成人免费的视频| 国产一区二区三区免费看| 日韩精品一区第一页| 一区二区三区中文字幕| 国产精品毛片久久久久久久| 精品国产99国产精品| 日韩色在线观看| 欧美色视频一区| 色综合天天综合在线视频| 成人激情开心网| 国v精品久久久网| 国内精品久久久久影院一蜜桃| 秋霞电影网一区二区| 五月综合激情日本mⅴ| 夜夜操天天操亚洲| 亚洲丝袜制服诱惑| 亚洲欧美另类小说| 中文字幕亚洲不卡| 日韩美女啊v在线免费观看| 国产精品视频yy9299一区| 国产婷婷一区二区| 中日韩免费视频中文字幕| 国产精品三级电影| 国产精品黄色在线观看| 亚洲国产精品高清| 亚洲色图第一区| 亚洲无线码一区二区三区| 丝瓜av网站精品一区二区| 日本免费新一区视频| 蜜臀久久99精品久久久久宅男| 免费在线观看精品| 狠狠色丁香婷婷综合| 国产99久久久国产精品潘金网站| 国产成人在线免费| 日本韩国视频一区二区| 欧美日韩一区二区三区不卡| 3atv一区二区三区| 久久色.com| 中文av一区特黄| 亚洲电影一级黄| 精品亚洲成a人在线观看| 国产成人夜色高潮福利影视| 97se亚洲国产综合自在线观| 欧美日韩一区二区三区四区| 欧美精品一区二区三区高清aⅴ| 中文字幕乱码一区二区免费| 一区二区三区中文字幕| 久久成人免费网| 一本久久a久久精品亚洲| 91麻豆精品国产91久久久久| 国产调教视频一区| 亚洲国产日韩在线一区模特| 狠狠色狠狠色综合| 欧美网站大全在线观看| 精品久久久三级丝袜| 亚洲欧美日韩人成在线播放| 日本美女一区二区三区视频| 成人美女视频在线看| 欧美日本在线播放| 欧美国产国产综合| 午夜电影一区二区| 成人手机电影网| 日韩欧美国产综合| 亚洲精品伦理在线| 韩国av一区二区三区在线观看| 99久久精品国产麻豆演员表| 69av一区二区三区| 亚洲天堂精品视频| 国产宾馆实践打屁股91| 69p69国产精品| 亚洲黄色免费网站| 高清beeg欧美| 日韩欧美视频在线| 一区二区三区视频在线看| 国产一区二区免费视频| 欧美日韩精品一区二区三区四区| 中文文精品字幕一区二区| 麻豆成人综合网| 在线电影欧美成精品| 亚洲精品高清在线观看| 国产福利一区二区三区视频在线| 欧美高清性hdvideosex| 一区二区三区中文字幕精品精品| 成人精品gif动图一区| 久久久久久一级片| 久久精品二区亚洲w码| 欧美精品高清视频| 一区二区三区视频在线看| 91同城在线观看| 国产精品理伦片| 国产不卡视频在线观看| 日韩美女视频一区二区在线观看| 一区二区三区四区亚洲| 97se亚洲国产综合自在线观| 中文欧美字幕免费| 东方aⅴ免费观看久久av| 国产欧美日产一区| 成人一区在线看| 国产精品久久久久久妇女6080 | 国产精品乱码一区二三区小蝌蚪| 国内精品写真在线观看| 久久免费精品国产久精品久久久久| 韩日精品视频一区| 亚洲精品在线一区二区|