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

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

?? barrenderer3d.java

?? Web圖形化的Java庫
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
        clip.lineTo(x3, y1);
        clip.lineTo(x2, y0);
        clip.closePath();

        // put an outline around the data area...
        Stroke outlineStroke = plot.getOutlineStroke();
        Paint outlinePaint = plot.getOutlinePaint();
        if ((outlineStroke != null) && (outlinePaint != null)) {
            g2.setStroke(outlineStroke);
            g2.setPaint(outlinePaint);
            g2.draw(clip);
        }

    }

    /**
     * Draws a grid line against the domain axis.
     * <P>
     * Note that this default implementation assumes that the horizontal axis is the domain axis.
     * If this is not the case, you will need to override this method.
     *
     * @param g2  the graphics device.
     * @param plot  the plot.
     * @param dataArea  the area for plotting data (not yet adjusted for any 3D effect).
     * @param value  the Java2D value at which the grid line should be drawn.
     *
     */
    public void drawDomainGridline(Graphics2D g2,
                                   CategoryPlot plot,
                                   Rectangle2D dataArea,
                                   double value) {

        Line2D line1 = null;
        Line2D line2 = null;
        PlotOrientation orientation = plot.getOrientation();
        if (orientation == PlotOrientation.HORIZONTAL) {
            double y0 = value;
            double y1 = value - getYOffset();
            double x0 = dataArea.getMinX();
            double x1 = x0 + getXOffset();
            double x2 = dataArea.getMaxY();
            line1 = new Line2D.Double(x0, y0, x1, y1);
            line2 = new Line2D.Double(x1, y1, x2, y1);
        }
        else if (orientation == PlotOrientation.VERTICAL) {
            double x0 = value;
            double x1 = value + getXOffset();
            double y0 = dataArea.getMaxY();
            double y1 = y0 - getYOffset();
            double y2 = dataArea.getMinY();
            line1 = new Line2D.Double(x0, y0, x1, y1);
            line2 = new Line2D.Double(x1, y1, x1, y2);
        }
        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(line1);
        g2.draw(line2);

    }

    /**
     * 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 drawRangeGridline(Graphics2D g2,
                                  CategoryPlot plot,
                                  ValueAxis axis,
                                  Rectangle2D dataArea,
                                  double value) {

        Range range = axis.getRange();

        if (!range.contains(value)) {
            return;
        }

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

        Line2D line1 = null;
        Line2D line2 = null;
        PlotOrientation orientation = plot.getOrientation();
        if (orientation == PlotOrientation.HORIZONTAL) {
            double x0 = axis.translateValueToJava2D(value, adjusted, plot.getRangeAxisEdge());
            double x1 = x0 + getXOffset();
            double y0 = dataArea.getMaxY();
            double y1 = y0 - getYOffset();
            double y2 = dataArea.getMinY();
            line1 = new Line2D.Double(x0, y0, x1, y1);
            line2 = new Line2D.Double(x1, y1, x1, y2);
        }
        else if (orientation == PlotOrientation.VERTICAL) {
            double y0 = axis.translateValueToJava2D(value, adjusted, plot.getRangeAxisEdge());
            double y1 = y0 - getYOffset();
            double x0 = dataArea.getMinX();
            double x1 = x0 + getXOffset();
            double x2 = dataArea.getMaxX();
            line1 = new Line2D.Double(x0, y0, x1, y1);
            line2 = new Line2D.Double(x1, y1, x2, y1);
        }
        Paint paint = plot.getRangeGridlinePaint();
        Stroke stroke = plot.getRangeGridlineStroke();
        g2.setPaint(paint != null ? paint : Plot.DEFAULT_OUTLINE_PAINT);
        g2.setStroke(stroke != null ? stroke : Plot.DEFAULT_OUTLINE_STROKE);
        g2.draw(line1);
        g2.draw(line2);

    }

    /**
     * Draws a range marker.
     *
     * @param g2  the graphics device.
     * @param plot  the plot.
     * @param axis  the value axis.
     * @param marker  the marker.
     * @param dataArea  the area for plotting data (not including 3D effect).
     */
    public void drawRangeMarker(Graphics2D g2,
                                CategoryPlot plot,
                                ValueAxis axis,
                                Marker marker,
                                Rectangle2D dataArea) {

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

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


        GeneralPath path = null;
        PlotOrientation orientation = plot.getOrientation();
        if (orientation == PlotOrientation.HORIZONTAL) {
            float x = (float) axis.translateValueToJava2D(marker.getValue(), adjusted,
                                                          plot.getRangeAxisEdge());
            float y = (float) adjusted.getMaxY();
            path = new GeneralPath();
            path.moveTo(x, y);
            path.lineTo((float) (x + getXOffset()), y - (float) getYOffset());
            path.lineTo((float) (x + getXOffset()), (float) (adjusted.getMinY() - getYOffset()));
            path.lineTo(x, (float) adjusted.getMinY());
            path.closePath();
        }
        else if (orientation == PlotOrientation.VERTICAL) {
            float y = (float) axis.translateValueToJava2D(marker.getValue(), adjusted,
                                                          plot.getRangeAxisEdge());
            float x = (float) dataArea.getX();
            path = new GeneralPath();
            path.moveTo(x, y);
            path.lineTo(x + (float) this.xOffset, y - (float) this.yOffset);
            path.lineTo((float) (adjusted.getMaxX() + this.xOffset), y - (float) this.yOffset);
            path.lineTo((float) (adjusted.getMaxX()), y);
            path.closePath();
        }
        g2.setPaint(marker.getPaint());
        g2.fill(path);
        g2.setPaint(marker.getOutlinePaint());
        g2.draw(path);

    }

    /**
     * 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 data  the dataset.
     * @param row  the row index (zero-based).
     * @param column  the column index (zero-based).
     */
    public void drawItem(Graphics2D g2,
                         Rectangle2D dataArea,
                         CategoryPlot plot,
                         CategoryAxis domainAxis,
                         ValueAxis rangeAxis,
                         CategoryDataset data,
                         int row,
                         int column) {

        PlotOrientation orientation = plot.getOrientation();
        if (orientation == PlotOrientation.HORIZONTAL) {
            drawHorizontalItem(g2, dataArea,
                               plot, domainAxis, rangeAxis, data, row, column);
        }
        else if (orientation == PlotOrientation.VERTICAL) {
            drawVerticalItem(g2, dataArea,
                             plot, domainAxis, rangeAxis, data, row, column);
        }

    }

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

        if (row == 0 && column == 0) {
            hiddenClip = new Area(g2.getClip());
        }

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

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

            // X
            double value = dataValue.doubleValue();
            double base = 0.0;
            double lclip = getLowerClip();
            double uclip = getUpperClip();

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

            RectangleEdge edge = plot.getRangeAxisEdge();
            double transX1 = rangeAxis.translateValueToJava2D(base, adjusted, edge);
            double transX2 = rangeAxis.translateValueToJava2D(value, adjusted, edge);
            double x0 = Math.min(transX1, transX2);
            double x2 = Math.max(transX1, transX2);
            double x1 = x0 + getXOffset();
            double x3 = x2 + getXOffset();

            // Y
            double y2 = domainAxis.getCategoryStart(column, getColumnCount(), adjusted,
                                                    plot.getDomainAxisEdge());

            int seriesCount = getRowCount();
            int categoryCount = getColumnCount();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品亚洲国产奇米99| 在线欧美日韩精品| 老汉av免费一区二区三区| 中文字幕在线不卡一区二区三区| 欧美日韩在线播放一区| 91在线国内视频| 高清不卡在线观看| 国产精品一区二区在线看| 精品一区免费av| 久久国产精品99久久久久久老狼| 亚洲资源在线观看| 亚洲黄色在线视频| 亚洲精品日韩一| 一区二区三区欧美日韩| 亚洲免费av网站| 亚洲午夜久久久久久久久电影院| 亚洲欧美另类图片小说| 亚洲精品国产第一综合99久久| 国产女人18毛片水真多成人如厕| 国产欧美久久久精品影院| 国产午夜精品久久久久久久| 国产精品欧美一区喷水| 亚洲色图清纯唯美| 五月天国产精品| 久久99精品国产麻豆婷婷| 精品一区二区影视| 国产69精品一区二区亚洲孕妇| www.亚洲免费av| 91国产免费观看| 日韩你懂的电影在线观看| 久久久久国产精品麻豆ai换脸 | 欧美羞羞免费网站| 欧美电影免费观看高清完整版在线| 久久亚洲精精品中文字幕早川悠里| 国产精品乱码一区二区三区软件| 亚洲欧美日韩一区二区| 日本aⅴ免费视频一区二区三区| 国产一区二区三区在线观看免费视频| 成人国产在线观看| 欧美日本一区二区三区四区| 国产婷婷一区二区| 日韩高清电影一区| k8久久久一区二区三区| 欧美一卡二卡三卡| 亚洲综合久久久久| k8久久久一区二区三区| 久久人人97超碰com| 亚洲成在线观看| gogo大胆日本视频一区| 欧美成人高清电影在线| 亚洲 欧美综合在线网络| 成人免费毛片嘿嘿连载视频| 91精品国产综合久久久蜜臀粉嫩 | 精品一二三四区| 欧美四级电影网| 亚洲欧美日韩国产另类专区| 国产激情精品久久久第一区二区| 欧美日韩精品综合在线| 一区二区在线观看av| 风间由美一区二区av101| 精品国产一区二区亚洲人成毛片| 亚洲成人动漫av| 91麻豆精品国产91久久久| 日韩国产精品久久| 欧美一区二区啪啪| 日本aⅴ免费视频一区二区三区| 韩日av一区二区| 这里只有精品视频在线观看| 一片黄亚洲嫩模| 欧美午夜精品一区二区三区| 综合自拍亚洲综合图不卡区| 99久久国产综合精品麻豆| 亚洲桃色在线一区| 欧洲人成人精品| 五月婷婷色综合| 日韩一级大片在线| 国产一区二区免费在线| 国产婷婷一区二区| 91老师国产黑色丝袜在线| 亚洲另类中文字| 日韩视频123| 从欧美一区二区三区| 亚洲第一综合色| 欧美www视频| av网站免费线看精品| 一区二区三区四区亚洲| 欧美精品第1页| 成人黄色网址在线观看| 亚洲午夜激情网站| 欧美国产在线观看| 欧美色手机在线观看| 精品一区二区三区在线观看国产 | 欧美国产国产综合| 欧美伊人精品成人久久综合97 | 久久婷婷一区二区三区| 日本精品视频一区二区| 激情伊人五月天久久综合| 亚洲桃色在线一区| 久久久精品免费网站| 欧美日韩精品久久久| 不卡一区二区三区四区| 裸体在线国模精品偷拍| 亚洲美女视频一区| 国产午夜精品久久久久久免费视| 欧美日本乱大交xxxxx| 99精品视频在线观看免费| 麻豆成人久久精品二区三区红| 亚洲激情五月婷婷| 国产精品美女久久久久久| 久久久久国产精品厨房| 欧美一级夜夜爽| 日韩一区二区三区免费观看| 在线观看成人小视频| 91丨九色丨尤物| 不卡av电影在线播放| 国产高清一区日本| 国产成人一区在线| 国产成人精品一区二| 精品一区中文字幕| 国产精品小仙女| kk眼镜猥琐国模调教系列一区二区| 成人毛片老司机大片| 成人精品视频一区二区三区| 国产成人在线免费观看| va亚洲va日韩不卡在线观看| 成人免费av网站| 色av成人天堂桃色av| 在线看国产一区二区| 69堂国产成人免费视频| 久久亚洲免费视频| 亚洲精品中文字幕乱码三区| 亚洲第一综合色| 另类小说视频一区二区| 成人永久看片免费视频天堂| eeuss鲁片一区二区三区在线看| 色综合天天性综合| 7777精品伊人久久久大香线蕉经典版下载 | 4438x成人网最大色成网站| 精品国内二区三区| 亚洲免费观看高清| 久久97超碰国产精品超碰| 成人免费黄色在线| 欧美一区二区三区四区视频| 国产区在线观看成人精品| 亚洲美女淫视频| 国产精品白丝jk白祙喷水网站| 在线观看日韩高清av| 久久久久国产精品麻豆ai换脸| 亚洲一级电影视频| 国产福利一区在线| 538在线一区二区精品国产| 国产欧美日韩不卡| 六月丁香婷婷色狠狠久久| 色综合久久综合网欧美综合网| 久久久午夜精品| 麻豆视频观看网址久久| 欧美乱熟臀69xxxxxx| 中文字幕亚洲精品在线观看| 亚洲动漫第一页| 日韩欧美国产精品| 欧洲国内综合视频| 亚洲国产成人私人影院tom| 天天做天天摸天天爽国产一区| 国产成人av网站| 日韩精品一区二区三区三区免费| 亚洲免费视频中文字幕| 欧美变态tickling挠脚心| 亚洲国产精品欧美一二99| 成人黄色av网站在线| 国产欧美日韩在线| 国产白丝精品91爽爽久久| 国产三级精品视频| 成人中文字幕在线| 综合av第一页| 欧美午夜免费电影| 天天色天天爱天天射综合| 欧美在线观看视频一区二区| 亚洲va韩国va欧美va| 69堂精品视频| 狠狠色狠狠色综合系列| 国产蜜臀av在线一区二区三区| 成人av电影在线播放| 亚洲免费在线视频一区 二区| 色婷婷av一区二区三区之一色屋| 亚洲综合丁香婷婷六月香| 欧美视频一区二区在线观看| 婷婷丁香久久五月婷婷| 精品国产91九色蝌蚪| 高清不卡一二三区| 亚洲成人一区二区在线观看| 欧美mv日韩mv国产网站| 国产69精品久久久久777| 一区av在线播放| 国产欧美日韩另类一区| 欧美日韩在线三级| 懂色中文一区二区在线播放| 亚洲国产视频在线| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 婷婷激情综合网| 中文字幕一区二区三区四区不卡|