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

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

?? barrenderer3d.java

?? Web圖形化的Java庫
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
            if (seriesCount > 1) {
                double seriesGap = dataArea.getHeight() * getItemMargin()
                                   / (categoryCount * (seriesCount - 1));
                y2 = y2 + row * (getBarWidth() + seriesGap);
            }
            else {
                y2 = y2 + row * getBarWidth();
            }

            // HEIGHT
            double y0 = y2 + getBarWidth();

            double y1 = y0 - getYOffset();
            double y3 = y2 - getYOffset();

            // draw the bar...
            if (plot.getForegroundAlpha() == 1.0) {
                g2.setClip(hiddenClip);
            }
            Rectangle2D bar = new Rectangle2D.Double(x0, y2, x2 - x0, y0 - y2);

            g2.setPaint(getItemPaint(row, column));
            g2.fill(bar);

            hiddenClip.subtract(new Area(bar));
            GeneralPath bar3dRight = null;
            GeneralPath bar3dTop = null;
            if ((x2 - x0) != 0) {
                bar3dRight = new GeneralPath();

                bar3dRight.moveTo((float) x2, (float) y2);
                bar3dRight.lineTo((float) x2, (float) y0);
                bar3dRight.lineTo((float) x3, (float) y1);
                bar3dRight.lineTo((float) x3, (float) y3);
                bar3dRight.closePath();

                g2.fill(bar3dRight);
                hiddenClip.subtract(new Area(bar3dRight));

                bar3dTop = new GeneralPath();

                bar3dTop.moveTo((float) x0, (float) y2);
                bar3dTop.lineTo((float) x1, (float) y3);
                bar3dTop.lineTo((float) x3, (float) y3);
                bar3dTop.lineTo((float) x2, (float) y2);
                bar3dTop.closePath();
                g2.fill(bar3dTop);
                hiddenClip.subtract(new Area(bar3dTop));
            }

            if (getBarWidth() > BAR_OUTLINE_WIDTH_THRESHOLD) {
                g2.setStroke(getItemStroke(row, column));
                g2.setPaint(getItemOutlinePaint(row, column));
                g2.draw(bar);
                if (bar3dRight != null) {
                    g2.draw(bar3dRight);
                }
                if (bar3dTop != null) {
                    g2.draw(bar3dTop);
                }

            }

            CategoryItemLabelGenerator generator = getItemLabelGenerator(row, column);
            if (generator != null && isItemLabelVisible(row, column)) {
                drawItemLabel(g2, dataset, row, column, plot, generator, bar, (transX1 > transX2));
            }        

            // collect entity and tool tip information...
            if (getInfo() != null) {
                EntityCollection entities = getInfo().getEntityCollection();
                if (entities != null) {
                    String tip = null;
                    generator = getItemLabelGenerator(row, column);
                    if (generator != null) {
                        tip = generator.generateToolTip(dataset, row, column);
                    }
                    String url = null;
                    if (getItemURLGenerator(row, column) != null) {
                        url = getItemURLGenerator(row, column).generateURL(dataset, row, column);
                    }
                    CategoryItemEntity entity = new CategoryItemEntity(
                        bar, tip, url, dataset, row, dataset.getColumnKey(column), column);
                    entities.addEntity(entity);
                }
            }

        }

    }

    /**
     * Draws a 3D bar to represent one data item.
     *
     * @param g2  the graphics device.
     * @param dataArea  the area for plotting the data.
     * @param plot  the plot.
     * @param domainAxis  the domain axis.
     * @param rangeAxis  the range axis.
     * @param dataset  the dataset.
     * @param row  the row index (zero-based).
     * @param column  the column index (zero-based).
     */
    protected void drawVerticalItem(Graphics2D g2,
                                    Rectangle2D dataArea,
                                    CategoryPlot plot,
                                    CategoryAxis domainAxis,
                                    ValueAxis rangeAxis,
                                    CategoryDataset dataset,
                                    int row,
                                    int column) {

        // check the value we are plotting...
        Number value = dataset.getValue(row, column);
        if (value != null) {

            Rectangle2D adjusted = new Rectangle2D.Double(dataArea.getX(),
                                                          dataArea.getY() + getYOffset(),
                                                          dataArea.getWidth() - getXOffset(),
                                                          dataArea.getHeight() - getYOffset());

            // BAR X
            double x0 = domainAxis.getCategoryStart(column, getColumnCount(), adjusted,
                                                    plot.getDomainAxisEdge());

            int seriesCount = getRowCount();
            int categoryCount = getColumnCount();
            if (seriesCount > 1) {
                double seriesGap = adjusted.getWidth() * getItemMargin()
                                   / (categoryCount * (seriesCount - 1));
                x0 = x0 + row * (getBarWidth() + seriesGap);
            }
            else {
                x0 = x0 + row * getBarWidth();
            }

            // BAR Y
            double y = value.doubleValue();
            double base = 0.0;
            double lclip = getLowerClip();
            double uclip = getUpperClip();

            if (uclip <= 0.0) {  // cases 1, 2, 3 and 4
                if (y >= uclip) {
                    return; // bar is not visible
                }
                base = uclip;
                if (y <= lclip) {
                    y = lclip;
                }
            }
            else {
                if (lclip <= 0.0) { // cases 5, 6, 7 and 8
                    if (y >= uclip) {
                       y = uclip;
                    }
                    else {
                        if (y <= lclip) {
                            y = lclip;
                        }
                    }
                }
                else { // cases 9, 10, 11 and 12
                    if (y <= lclip) {
                        return; // bar is not visible
                    }
                    base = lclip;
                    if (y >= uclip) {
                        y = uclip;
                    }
                }
            }

            RectangleEdge edge = plot.getRangeAxisEdge();
            double transY1 = rangeAxis.translateValueToJava2D(base, adjusted, edge);
            double transY2 = rangeAxis.translateValueToJava2D(y, adjusted, edge);
            double y2 = Math.min(transY1, transY2);

            double x1 = x0 + getBarWidth();
            double y0 = Math.max(transY1, transY2);

            double x2 = x0 + this.xOffset;
            double x3 = x1 + this.xOffset;
            double y1 = y0 - this.yOffset;
            double y3 = y2 - this.yOffset;

            Rectangle2D bar = new Rectangle2D.Double(x0, y2, x1 - x0, y0 - y2);
            Paint itemPaint = getItemPaint(row, column);
            g2.setPaint(itemPaint);
            g2.fill(bar);

            GeneralPath bar3dRight = null;
            GeneralPath bar3dTop = null;
            if ((y0 - y2) != 0) {
                bar3dRight = new GeneralPath();
                bar3dRight.moveTo((float) x1, (float) y2);
                bar3dRight.lineTo((float) x1, (float) y0);
                bar3dRight.lineTo((float) x3, (float) y1);
                bar3dRight.lineTo((float) x3, (float) y3);
                bar3dRight.closePath();

                if (itemPaint instanceof Color) {
                    g2.setPaint(((Color) itemPaint).darker());
                }
                g2.fill(bar3dRight);
            }

            bar3dTop = new GeneralPath();
            bar3dTop.moveTo((float) x0, (float) y2);
            bar3dTop.lineTo((float) x2, (float) y3);
            bar3dTop.lineTo((float) x3, (float) y3);
            bar3dTop.lineTo((float) x1, (float) y2);
            bar3dTop.closePath();
            g2.fill(bar3dTop);

            if (getBarWidth() > 3) {
                g2.setStroke(getItemStroke(row, column));
                g2.setPaint(getItemOutlinePaint(row, column));
                g2.draw(bar);
                if (bar3dRight != null) {
                    g2.draw(bar3dRight);
                }
                if (bar3dTop != null) {
                    g2.draw(bar3dTop);
                }
            }

            CategoryItemLabelGenerator generator = getItemLabelGenerator(row, column);
            if (generator != null && isItemLabelVisible(row, column)) {
                drawItemLabel(g2, dataset, row, column, plot, generator, bar, (transY1 > transY2));
            }        

            // collect entity and tool tip information...
            if (getInfo() != null) {
                EntityCollection entities = getInfo().getEntityCollection();
                if (entities != null) {
                    GeneralPath barOutline = new GeneralPath();
                    barOutline.moveTo((float) x0, (float) y0);
                    barOutline.lineTo((float) x0, (float) y2);
                    barOutline.lineTo((float) x2, (float) y3);
                    barOutline.lineTo((float) x3, (float) y3);
                    barOutline.lineTo((float) x3, (float) y1);
                    barOutline.lineTo((float) x1, (float) y0);
                    barOutline.closePath();

                    String tip = null;
                    generator = getItemLabelGenerator(row, column);
                    if (generator != null) {
                        tip = generator.generateToolTip(dataset, row, column);
                    }
                    String url = null;
                    if (getItemURLGenerator(row, column) != null) {
                        url = getItemURLGenerator(row, column).generateURL(dataset, row, column);
                    }
                    CategoryItemEntity entity = new CategoryItemEntity(
                        barOutline, tip, url, dataset, row, dataset.getColumnKey(column), column
                    );
                    entities.addEntity(entity);
                }
            }
        }

    }

    /**
     * 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.writePaint(this.wallPaint, stream);
    }

    /**
     * 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.wallPaint = SerialUtilities.readPaint(stream);
    }


}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费xxxx性欧美18vr| 久久综合久久鬼色| 国产一区二区三区四区在线观看| 亚洲色图.com| 午夜精品一区在线观看| 国产精品久久久久一区 | 国产欧美日韩亚州综合| 精品蜜桃在线看| 欧美xxxxx裸体时装秀| 日韩三级视频在线观看| 精品福利在线导航| 久久精品视频在线免费观看| 久久影院视频免费| 久久精品视频在线看| 久久精品视频一区二区| 国产精品久久99| 亚洲欧美一区二区三区久本道91 | 色综合激情久久| 91麻豆福利精品推荐| 欧美日韩综合不卡| 欧美日本在线一区| 亚洲精品一区在线观看| 日本一区二区久久| 亚洲免费观看高清完整版在线| 樱花影视一区二区| 日韩精品国产欧美| 三级久久三级久久| 久久精品国产精品亚洲红杏| 国产精品综合一区二区三区| 99亚偷拍自图区亚洲| 欧美视频你懂的| 亚洲精品一区二区在线观看| 国产精品短视频| 日日摸夜夜添夜夜添精品视频| 蜜桃久久av一区| 成人高清免费在线播放| 欧美亚洲一区二区在线观看| 日韩精品在线看片z| 国产三级精品三级在线专区| 亚洲最大成人网4388xx| 开心九九激情九九欧美日韩精美视频电影| 国产精品亚洲专一区二区三区| 一本久久综合亚洲鲁鲁五月天 | 欧美成人女星排名| 成人欧美一区二区三区在线播放| 亚洲成人av一区| 国产精品456露脸| 欧美日韩一区二区三区在线 | 欧美这里有精品| 2024国产精品| 一区二区三区不卡在线观看 | 91精品国产综合久久久久| 国产视频一区二区三区在线观看| 一区二区三区精品| 麻豆精品视频在线观看| 色综合视频在线观看| 日韩欧美黄色影院| 一区二区三区电影在线播| 国产91精品久久久久久久网曝门| 欧美日韩中文字幕一区二区| 国产精品不卡一区| 久久av资源网| 欧美日韩视频在线第一区| 国产精品久久久久影院| 韩国毛片一区二区三区| 欧美日韩一区二区三区高清| 国产亚洲综合av| 久久99精品国产.久久久久久| 欧美这里有精品| 亚洲一区在线观看网站| 91亚洲男人天堂| 国产精品久久久久久久久晋中 | 亚洲另类在线视频| 成人午夜精品一区二区三区| 久久综合丝袜日本网| 九色综合狠狠综合久久| 日韩午夜中文字幕| 日本特黄久久久高潮| 91麻豆精品国产91久久久使用方法| 最新不卡av在线| 91麻豆国产福利在线观看| 亚洲国产一区二区三区青草影视| 成年人国产精品| 亚洲人成亚洲人成在线观看图片| 国产91精品入口| 最新热久久免费视频| 处破女av一区二区| 中文字幕日韩精品一区 | 一区二区三区在线视频免费观看| 91影院在线免费观看| 一区二区三区中文字幕| 欧美日韩国产综合一区二区三区| 亚洲va欧美va国产va天堂影院| 欧美日韩三级视频| 人人爽香蕉精品| 久久久久青草大香线综合精品| 国产成人精品影视| 中文字幕日韩av资源站| 精品视频一区 二区 三区| 丝袜国产日韩另类美女| 久久影院视频免费| 99国内精品久久| 日韩精品福利网| 国产午夜亚洲精品不卡| 日本高清不卡aⅴ免费网站| 五月天视频一区| 国产亚洲欧美日韩在线一区| 97久久精品人人做人人爽50路| 亚洲一区影音先锋| 精品国产精品网麻豆系列| 国产成人aaaa| 亚洲成人一二三| 久久久不卡网国产精品一区| 成人不卡免费av| 日本视频一区二区| 国产精品国产精品国产专区不蜜 | 黄色精品一二区| 亚洲免费资源在线播放| 日韩精品一区二区三区四区| 成人黄色国产精品网站大全在线免费观看| 亚洲精品免费视频| 精品国内片67194| 色国产综合视频| 国产高清无密码一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了| 日韩欧美一级精品久久| 99r国产精品| 极品少妇xxxx精品少妇| 综合欧美亚洲日本| 久久奇米777| 欧美一区二区三区四区五区| 99re这里只有精品首页| 久久er精品视频| 午夜精品123| 国产精品国产三级国产| 精品乱码亚洲一区二区不卡| 欧美丝袜丝nylons| fc2成人免费人成在线观看播放 | 色域天天综合网| 国产成人亚洲综合a∨婷婷图片| 亚洲va天堂va国产va久| 亚洲国产人成综合网站| 国产精品传媒入口麻豆| 国产亚洲一区字幕| 久久蜜桃一区二区| 日韩午夜精品电影| 91啪九色porn原创视频在线观看| 国模一区二区三区白浆| 日本不卡123| 午夜精品久久久久久久久久久 | 老司机免费视频一区二区三区| 玉足女爽爽91| 亚洲综合视频在线观看| 亚洲精选一二三| 自拍偷拍亚洲激情| 国产精品灌醉下药二区| 国产精品网站一区| 国产精品亲子乱子伦xxxx裸| 欧美电视剧免费全集观看| av一区二区三区黑人| 欧美日韩不卡一区二区| 樱花草国产18久久久久| 国产成人午夜高潮毛片| 国产欧美日韩久久| 欧美三级电影一区| 国产又粗又猛又爽又黄91精品| 成人毛片在线观看| 首页国产欧美久久| 从欧美一区二区三区| 中文字幕一区二区在线观看| 一区二区三区在线不卡| 日韩精品视频网| 94-欧美-setu| 国产精品成人午夜| 欧美午夜影院一区| 亚洲人成伊人成综合网小说| 国产美女在线观看一区| 中文字幕成人在线观看| 欧美成人精品福利| 国产一区二区成人久久免费影院 | 欧美日韩视频在线观看一区二区三区 | 久久99精品国产麻豆婷婷洗澡| 日韩国产一二三区| 一区二区三区在线影院| 色综合网色综合| 中文字幕综合网| 美女网站在线免费欧美精品| 岛国一区二区三区| 中文字幕在线播放不卡一区| 日韩国产欧美在线观看| 99视频在线精品| 久久久久久99精品| 亚洲欧美日韩久久精品| 一区二区三区在线观看视频| 国产视频一区二区在线观看| 久久99精品国产| 日韩欧美国产高清| 国产精品一区二区在线看| 337p粉嫩大胆噜噜噜噜噜91av| 欧美aⅴ一区二区三区视频|