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

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

?? contourplot.java

?? Web圖形化的Java庫
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
                if (getToolTipGenerator() != null) {
                    tip = toolTipGenerator.generateToolTip(data, k);
                }
//              Shape s = g2.getClip();
//              if (s.contains(rect) || s.intersects(rect)) {
                String url = null;
                // if (getURLGenerator() != null) {    //dmo: look at this later
                //      url = getURLGenerator().generateURL(data, series, item);
                // }
                // Unlike XYItemRenderer, we need to clone entityArea since it reused.
                ContourEntity entity = new ContourEntity((Rectangle2D.Double) entityArea.clone(),
                                                         tip, url);
                entity.setIndex(k);
                entities.addEntity(entity);
//              }
            }

            // do we need to update the crosshair values?
            if (plot.isDomainCrosshairLockedOnData()) {
                if (plot.isRangeCrosshairLockedOnData()) {
                    // both axes
                    crosshairInfo.updateCrosshairPoint(transX, transY);
                }
                else {
                    // just the horizontal axis...
                    crosshairInfo.updateCrosshairX(transX);
                }
            }
            else {
                if (plot.isRangeCrosshairLockedOnData()) {
                    // just the vertical axis...
                    crosshairInfo.updateCrosshairY(transY);
                }
            }
        }

        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, antiAlias);

        return;

    }

    /**
     * Draws the visual representation of a single data item.
     *
     * @param g2  the graphics device.
     * @param dataArea  the area within which the data is being drawn.
     * @param info  collects information about the drawing.
     * @param plot  the plot (can be used to obtain standard color information etc).
     * @param domainAxis  the domain (horizontal) axis.
     * @param rangeAxis  the range (vertical) axis.
     * @param colorBar  the color bar axis.
     * @param data  the dataset.
     * @param crosshairInfo  information about crosshairs on a plot.
     */
    public void pointRenderer(Graphics2D g2,
                              Rectangle2D dataArea,
                              ChartRenderingInfo info,
                              ContourPlot plot,
                              ValueAxis domainAxis,
                              ValueAxis rangeAxis,
                              ColorBar colorBar,
                              ContourDataset data,
                              CrosshairInfo crosshairInfo) {

        // setup for collecting optional entity info...
        RectangularShape entityArea = null;
        EntityCollection entities = null;
        if (info != null) {
            entities = info.getEntityCollection();
        }

//      Rectangle2D.Double rect = null;
//      rect = new Rectangle2D.Double();
        RectangularShape rect = new Ellipse2D.Double();


        //turn off anti-aliasing when filling rectangles
        Object antiAlias = g2.getRenderingHint(RenderingHints.KEY_ANTIALIASING);
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);

        //      if (tooltips!=null) tooltips.clearToolTips(); // reset collection
        // get the data points
        Number[] xNumber = data.getXValues();
        Number[] yNumber = data.getYValues();
        Number[] zNumber = data.getZValues();

        double[] x = new double[xNumber.length];
        double[] y = new double[yNumber.length];
//      double[] z = new double[zNumber.length];

        for (int i = 0; i < x.length; i++) {
            x[i] = xNumber[i].doubleValue();
            y[i] = yNumber[i].doubleValue();
//          z[i] = zNumber[i].doubleValue();
        }

//      int[] xIndex = ((DefaultContourDataset) data).indexX();
//      int[] indexX = ((DefaultContourDataset) data).getXIndices();
//      boolean vertInverted = ((NumberAxis) verticalAxis).isInverted();
//      boolean horizInverted = false;
//      if (horizontalAxis instanceof NumberAxis)
//          horizInverted = ((NumberAxis) horizontalAxis).isInverted();

        double transX = 0.0;
        double transDX = 0.0;
        double transY = 0.0;
        double transDY = 0.0;
        double size = dataArea.getWidth() * ptSizePct;
        for (int k = 0; k < x.length; k++) {

            transX = domainAxis.translateValueToJava2D(x[k], dataArea, RectangleEdge.BOTTOM) 
                     - 0.5 * size;
            transY = rangeAxis.translateValueToJava2D(y[k], dataArea, RectangleEdge.LEFT) 
                     - 0.5 * size;
            transDX = size;
            transDY = size;

            rect.setFrame(transX, transY, transDX, transDY);

            if (zNumber[k] != null) {
                g2.setPaint(colorBar.getPaint(zNumber[k].doubleValue()));
                g2.fill(rect);
            }
            else if (missingPaint != null) {
                g2.setPaint(missingPaint);
                g2.fill(rect);
            }


            entityArea = rect;

            // add an entity for the item...
            if (entities != null) {
                String tip = null;
                if (getToolTipGenerator() != null) {
                    tip = toolTipGenerator.generateToolTip(data, k);
                }
                String url = null;
                // if (getURLGenerator() != null) {                    //dmo: look at this later
                //   url = getURLGenerator().generateURL(data, series, item);
                // }
                //Unlike XYItemRenderer, we need to clone entityArea since it reused.
                ContourEntity entity = new ContourEntity((RectangularShape) entityArea.clone(),
                                                          tip, url);
                entity.setIndex(k);
                entities.addEntity(entity);
            }

            // do we need to update the crosshair values?
            if (plot.isDomainCrosshairLockedOnData()) {
                if (plot.isRangeCrosshairLockedOnData()) {
                    // both axes
                    crosshairInfo.updateCrosshairPoint(transX, transY);
                }
                else {
                    // just the horizontal axis...
                    crosshairInfo.updateCrosshairX(transX);
                }
            }
            else {
                if (plot.isRangeCrosshairLockedOnData()) {
                    // just the vertical axis...
                    crosshairInfo.updateCrosshairY(transY);
                }
            }
        }


        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, antiAlias);

        return;

    }

    /**
     * Utility method for drawing a crosshair on the chart (if required).
     *
     * @param g2  The graphics device.
     * @param dataArea  The data area.
     * @param value  The coordinate, where to draw the line.
     * @param stroke  The stroke to use.
     * @param paint  The paint to use.
     */
    protected void drawVerticalLine(Graphics2D g2, Rectangle2D dataArea,
                                    double value, Stroke stroke, Paint paint) {

        double xx = getDomainAxis().translateValueToJava2D(value, dataArea, RectangleEdge.BOTTOM);
        Line2D line = new Line2D.Double(xx, dataArea.getMinY(),
                                        xx, dataArea.getMaxY());
        g2.setStroke(stroke);
        g2.setPaint(paint);
        g2.draw(line);

    }

    /**
     * Utility method for drawing a crosshair on the chart (if required).
     *
     * @param g2  The graphics device.
     * @param dataArea  The data area.
     * @param value  The coordinate, where to draw the line.
     * @param stroke  The stroke to use.
     * @param paint  The paint to use.
     */
    protected void drawHorizontalLine(Graphics2D g2, Rectangle2D dataArea,
                                      double value, Stroke stroke, Paint paint) {

        double yy = getRangeAxis().translateValueToJava2D(value, dataArea, RectangleEdge.LEFT);
        Line2D line = new Line2D.Double(dataArea.getMinX(), yy,
                                        dataArea.getMaxX(), yy);
        g2.setStroke(stroke);
        g2.setPaint(paint);
        g2.draw(line);

    }

    /**
     * Handles a 'click' on the plot by updating the anchor values...
     *
     * @param x  x-coordinate, where the click occured.
     * @param y  y-coordinate, where the click occured.
     * @param info  An object for collection dimension information.
     */
    public void handleClick(int x, int y, ChartRenderingInfo info) {

/*        // set the anchor value for the horizontal axis...
        ValueAxis hva = getDomainAxis();
        if (hva != null) {
            double hvalue = hva.translateJava2DtoValue((float) x, info.getDataArea());

            hva.setAnchorValue(hvalue);
            setDomainCrosshairValue(hvalue);
        }

        // set the anchor value for the vertical axis...
        ValueAxis vva = this.getRangeAxis();
        if (vva != null) {
            double vvalue = vva.translateJava2DtoValue((float) y, info.getDataArea());
            vva.setAnchorValue(vvalue);
            setRangeCrosshairValue(vvalue);
        }
*/
    }

    /**
     * Zooms the axis ranges by the specified percentage about the anchor point.
     *
     * @param percent  The amount of the zoom.
     */
    public void zoom(double percent) {

        if (percent > 0) {
            double range = this.domainAxis.getRange().getLength();
            double scaledRange = range * percent;
          //  domainAxis.setAnchoredRange(scaledRange);

            range = this.rangeAxis.getRange().getLength();
            scaledRange = range * percent;
         //   rangeAxis.setAnchoredRange(scaledRange);
        }
        else {
            getRangeAxis().setAutoRange(true);
            getDomainAxis().setAutoRange(true);
        }

    }

    /**
     * Returns the plot type as a string.
     *
     * @return A short string describing the type of plot.
     */
    public String getPlotType() {
        return localizationResources.getString("Contour_Plot");
    }

    /**
     * Returns the range for an axis.
     *
     * @param axis  the axis.
     *
     * @return The range for an axis.
     */
    public Range getDataRange(ValueAxis axis) {

        if (this.dataset == null) {
            return null;
        }

        Range result = null;

        if (axis == getDomainAxis()) {
            result = DatasetUtilities.getDomainExtent(dataset);
        }
        else if (axis == getRangeAxis()) {
            result = DatasetUtilities.getRangeExtent(dataset);
        }

        return result;

    }

    /**
     * Returns the range for the Contours.
     *
     * @return The range for the Contours (z-axis).
     */
    public Range getContourDataRange() {

        Range result = null;

        ContourDataset data = (ContourDataset) getDataset();

        if (data != null) {
            Range h = getDomainAxis().getRange();
            Range v = getRangeAxis().getRange();
            result = this.visibleRange(data, h, v);
        }

        return result;
    }

    /**
     * Notifies all registered listeners of a property change.
     * <P>
     * One source of property change events is the plot's renderer.
     *
     * @param event  Information about the property change.
     */
    public void propertyChange(PropertyChangeEvent event) {

        this.notifyListeners(new PlotChangeEvent(this));

    }

    /**
     * Receives notification of a change to the plot's dataset.
     * <P>
     * The chart reacts by passing on a chart change event to all registered
     * listeners.
     *
     * @param event  Information about the event (not used here).
     */
    public void datasetChanged(DatasetChangeEvent event) {

        if (this.domainAxis != null) {
            this.domainAxis.configure();
        }

        if (this.rangeAxis != null) {
            this.rangeAxis.configure();
        }

        if (this.colorBar != null) {
            this.colorBar.configure(this);
        }

        PlotChangeEvent e = new PlotChangeEvent(this);
        notifyListeners(e);
    }

    /**
     * Returns the colorbar.
     *
     * @return The colorbar.
     */
    public ColorBar getColorBar() {
        return colorBar;
    }

    /**
     * Returns a flag indicating whether or not the domain crosshair is visible.
     *
     * @return the flag.
     */
    public boolean isDomainCrosshairVisible() {
        return this.domainCrosshairVisible;
    }

    /**
     * Sets the flag indicating whether or not the domain crosshair is visible.
     *
     * @param flag  the new value of the flag.
     */
    public void setDomainCrosshairVisible(boolean flag) {

        if (this.domainCrosshairVisible != flag) {
            this.domainCrosshairVisible = flag;
            notifyListeners(new PlotChangeEvent(this));
        }

    }

    /**
     * Returns a flag indicating whether or not the crosshair should "lock-on"
     * to actual data values.
     *
     * @return the flag.
     */
    public boolean isDomainCrosshairLockedOnData() {
        return this.domainCrosshairLockedOnData;
    }

    /**
     * Sets the flag indicating whether or not the domain crosshair should "lock-on"
     * to actual data values.
     *
     * @param flag  the flag.
     */
    public void setDomainCrosshairLockedOnData(boolean flag) {

        if (this.domainCrosshairLockedOnData != flag) {
            this.domainCrosshairLockedOnData = flag;
            notifyListeners(new PlotChangeEvent(this));
        }

    }

    /**
     * Returns the domain crosshair value.
     *
     * @return The value.
     */
    public double getDomainCrosshairValue() {
        return this.domainCrosshairValue;
    }

    /**
     * Sets the domain crosshair value.
     * <P>
     * Registered listeners are notified that the plot has been modified, but
     * only if the crosshair is visible.
     *
     * @param value  the new value.
     */
    public void setDomainCrosshairValue(double value) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品乱人伦| 国产成人午夜精品5599| 日韩电影在线观看一区| 久久爱另类一区二区小说| 国产精品一区一区| 在线日韩一区二区| 在线不卡一区二区| 中文字幕二三区不卡| 亚洲国产wwwccc36天堂| 精品一区二区三区视频在线观看 | 久久综合久色欧美综合狠狠| 中文字幕精品一区二区三区精品| 亚洲精品久久嫩草网站秘色| 久久av资源网| 在线免费不卡电影| 国产午夜精品一区二区三区嫩草 | 国产凹凸在线观看一区二区| 色系网站成人免费| 国产亚洲1区2区3区| 五月开心婷婷久久| 99久久综合狠狠综合久久| 91精品国产综合久久久久久久久久| 国产亚洲人成网站| 九九精品一区二区| 欧美日韩国产电影| 一区二区三区免费网站| 成人av一区二区三区| 久久久久久久一区| 久久草av在线| 精品国产乱码久久久久久影片| 亚洲午夜精品网| 日本韩国视频一区二区| 成人免费在线观看入口| 丰满亚洲少妇av| 久久色.com| 国产美女一区二区三区| 欧美精品一区二区三区蜜桃| 日韩av高清在线观看| 欧美久久久久中文字幕| 亚洲国产成人高清精品| 欧美人与z0zoxxxx视频| 天天操天天色综合| 欧美一区二区三区电影| 精品一区二区三区免费视频| 欧美一区日韩一区| 免费成人美女在线观看.| 日韩欧美www| 国产盗摄一区二区三区| 国产欧美日韩另类视频免费观看| 丁香六月综合激情| 综合网在线视频| 在线不卡中文字幕| 国产精品一区二区三区四区| 国产精品久久久久一区二区三区| 99精品视频一区二区三区| 亚洲黄色片在线观看| 欧美成人精品高清在线播放| 国产成人综合亚洲91猫咪| 国产精品久久久久久久久图文区| 99re热视频精品| 奇米888四色在线精品| 久久久久亚洲蜜桃| 欧美性欧美巨大黑白大战| 青青草97国产精品免费观看 | 精品奇米国产一区二区三区| 国产精品一区二区无线| 亚洲一区二区三区自拍| 精品国产免费一区二区三区四区 | 久久精品一二三| 欧美日韩在线不卡| 国产一区中文字幕| 亚洲无人区一区| 国产精品久久久久久久久图文区| 5858s免费视频成人| 成人自拍视频在线观看| 日韩精品免费视频人成| 亚洲伦在线观看| 国产拍欧美日韩视频二区| 国产精品灌醉下药二区| 亚洲精品在线一区二区| 欧美人与性动xxxx| 91啦中文在线观看| 国产成人亚洲综合a∨婷婷| 同产精品九九九| 亚洲不卡在线观看| 亚洲黄色免费电影| 日韩美女精品在线| 国产精品女人毛片| 日本一二三四高清不卡| 久久一区二区视频| 精品日韩一区二区三区| 日韩一级片网站| 3d成人动漫网站| 91精品国产综合久久精品图片 | 天使萌一区二区三区免费观看| 国产精品区一区二区三| 中文文精品字幕一区二区| 国产三级三级三级精品8ⅰ区| 日韩欧美国产电影| 久久综合九色综合97_久久久| 日韩精品一区在线观看| 欧美一区二区在线视频| 欧美久久久久久久久| 欧美一级黄色大片| 日韩欧美一二三| 久久日韩粉嫩一区二区三区| 久久老女人爱爱| 国产精品女上位| 亚洲伦理在线免费看| 五月激情综合网| 蜜桃久久精品一区二区| 精品亚洲免费视频| 国产一区二区三区久久悠悠色av| 成人午夜免费视频| 99re免费视频精品全部| 精品视频在线免费| 欧美videos大乳护士334| 久久亚洲精品国产精品紫薇| 国产精品欧美极品| 一区二区在线观看免费视频播放 | 777亚洲妇女| 久久久久久久综合色一本| 有码一区二区三区| 美女视频网站黄色亚洲| 99久久精品免费观看| 欧美电影影音先锋| 中文字幕二三区不卡| 亚洲va欧美va人人爽午夜| 国产精品一区二区免费不卡| 在线观看亚洲专区| 亚洲国产精品精华液2区45| 日韩国产在线观看| 成人性视频免费网站| 91精品久久久久久久91蜜桃| 亚洲国产经典视频| 精品一区二区在线播放| 欧美日韩高清不卡| 亚洲日本韩国一区| 国产成人av电影免费在线观看| 欧美福利一区二区| 亚洲综合精品自拍| av一区二区久久| 中文字幕成人av| 国产高清久久久| 久久毛片高清国产| 玖玖九九国产精品| 欧美高清精品3d| 亚洲成精国产精品女| 在线观看日韩毛片| 亚洲国产精品成人综合| 国产精品99久久久| 欧美精品一区男女天堂| 精品亚洲成a人| 久久久久综合网| 懂色av中文字幕一区二区三区| 久久久久九九视频| 国产一区二区三区免费观看| 欧美大片在线观看一区| 久久国产精品免费| 精品国产乱码久久久久久1区2区| 日本强好片久久久久久aaa| 91 com成人网| 麻豆精品国产91久久久久久| 337p日本欧洲亚洲大胆精品| 美女尤物国产一区| 国产午夜精品久久| 99精品欧美一区| 亚洲国产cao| 欧美成人猛片aaaaaaa| 成人免费视频一区| 亚洲人成在线播放网站岛国 | 91精品国产91综合久久蜜臀| 久热成人在线视频| 亚洲视频在线一区| 欧美一区二区免费视频| 美腿丝袜亚洲色图| 亚洲天天做日日做天天谢日日欢 | 欧美精品一区二区三| 成人激情黄色小说| 日韩中文字幕91| 精品99999| 欧美人狂配大交3d怪物一区| 极品少妇xxxx精品少妇偷拍 | 91久久精品一区二区| 久久电影网电视剧免费观看| 亚洲色图制服丝袜| 久久综合久久综合久久综合| 91同城在线观看| 国产一区二区影院| 亚洲高清免费在线| 成人欧美一区二区三区小说| 欧美变态tickling挠脚心| 色呦呦国产精品| 国产成人免费av在线| 精品在线播放免费| 亚洲电影你懂得| 亚洲激情一二三区| 亚洲色图一区二区三区| 欧美国产一区二区在线观看| 欧美不卡一区二区三区四区|