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

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

?? contourplot.java

?? 制作圖表的好工具
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
        );
        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().valueToJava2D(
            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, PlotRenderingInfo 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 = 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.findDomainBounds(this.dataset);
        }
        else if (axis == getRangeAxis()) {
            result = DatasetUtilities.findRangeBounds(this.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 = 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) {
        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);
        }
        super.datasetChanged(event);
    }

    /**
     * Returns the colorbar.
     *
     * @return The colorbar.
     */
    public ColorBar getColorBar() {
        return this.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) {

        setDomainCrosshairValue(value, true);

    }

    /**
     * Sets the domain crosshair value.
     * <P>
     * Registered listeners are notified that the axis has been modified, but
     * only if the crosshair is visible.
     *
     * @param value  the new value.
     * @param notify  a flag that controls whether or not listeners are 
     *                notified.
     */
    public void setDomainCrosshairValue(double value, boolean notify) {

        this.domainCrosshairValue = value;
        if (isDomainCrosshairVisible() && notify) {
            notifyListeners(new PlotChangeEvent(this));
        }

    }

    /**
     * Returns the Stroke used to draw the crosshair (if visible).
     *
     * @return The crosshair stroke.
     */
    public Stroke getDomainCrosshairStroke() {
        return this.domainCrosshairStroke;
    }

    /**
     * Sets the Stroke used to draw the crosshairs (if visible) and notifies
     * registered listeners that the axis has been modified.
     *
     * @param stroke  the new crosshair stroke.
     */
    public void setDomainCrosshairStroke(Stroke stroke) {
        this.domainCrosshairStroke = stroke;
        notifyListeners(new PlotChangeEvent(this));
    }

    /**
     * Returns the domain crosshair color.
     *
     * @return The crosshair color.
     */
    public Paint getDomainCrosshairPaint() {
        return this.domainCrosshairPaint;
    }

    /**
     * Sets the Paint used to color the crosshairs (if visible) and notifies
     * registered listeners that the axis has been modified.
     *
     * @param paint the new crosshair paint.
     */
    public void setDomainCrosshairPaint(Paint paint) {
        this.domainCrosshairPaint = paint;
        notifyListeners(new PlotChangeEvent(this));
    }

    /**
     * Returns a flag indicating whether or not the range crosshair is visible.
     *
     * @return The flag.
     */
    public boolean isRangeCrosshairVisible() {
        return this.rangeCrosshairVisible;
    }

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

        if (this.rangeCrosshairVisible != flag) {
            this.rangeCrosshairVisible = 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 isRangeCrosshairLockedOnData() {
        return this.rangeCrosshairLockedOnData;
    }

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

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

    }

    /**
     * Returns the range crosshair value.
     *
     * @return The value.
     */
    public double getRangeCrosshairValue() {
        return this.rangeCrosshairValue;
    }

    /**
     * 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 setRangeCrosshairValue(double value) {

        setRangeCrosshairValue(value, true);

    }

    /**
     * Sets the range crosshair value.
     * <P>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品网曝门| 91在线视频播放| 国产成人综合在线播放| 成人h版在线观看| 91麻豆精品91久久久久久清纯| 欧美成人aa大片| 国产亚洲一二三区| 一区二区欧美视频| 麻豆一区二区99久久久久| 成人精品在线视频观看| 精品视频色一区| 久久久久久**毛片大全| 亚洲欧美日韩在线| 捆绑紧缚一区二区三区视频| 成人理论电影网| 欧美日韩亚洲综合在线| 国产午夜精品一区二区三区嫩草| 一区二区三区在线免费视频| 看片网站欧美日韩| 一本大道久久a久久精二百| 日韩美女天天操| 亚洲啪啪综合av一区二区三区| 麻豆精品久久精品色综合| 成人av免费在线播放| 日韩一区二区麻豆国产| 亚洲欧美中日韩| 久久99久久精品欧美| 色悠久久久久综合欧美99| 精品国产123| 一区二区三区精品视频| 国产精品一二二区| 欧美电影影音先锋| 亚洲欧洲日韩在线| 国产精品亚洲一区二区三区在线 | 欧美三级韩国三级日本一级| 国产视频在线观看一区二区三区| 首页国产欧美久久| 91丝袜呻吟高潮美腿白嫩在线观看| 91精品国产手机| 亚洲欧美日韩一区二区| 高清在线不卡av| 日韩写真欧美这视频| 亚洲精品日韩一| 国产91精品欧美| 精品蜜桃在线看| 日韩精品电影在线观看| 在线国产亚洲欧美| 国产精品久久久久一区二区三区共 | 日本欧美大码aⅴ在线播放| 91视频在线观看| 国产三级久久久| 精品亚洲免费视频| 日韩一级大片在线观看| 亚洲一区二区偷拍精品| a亚洲天堂av| 中文字幕精品综合| 经典三级在线一区| 在线播放91灌醉迷j高跟美女 | 国产成人亚洲综合a∨婷婷| 宅男在线国产精品| 亚洲自拍都市欧美小说| 91亚洲男人天堂| 国产人成一区二区三区影院| 老司机精品视频导航| 欧美精品v国产精品v日韩精品| 一区二区三区在线视频观看58| 91亚洲男人天堂| 亚洲图片欧美激情| 欧美一级电影网站| 性欧美大战久久久久久久久| 91美女片黄在线观看91美女| 国产精品免费aⅴ片在线观看| 国产乱码精品1区2区3区| 精品精品欲导航| 久久99久久99精品免视看婷婷 | 日日夜夜免费精品| 欧美男男青年gay1069videost| 亚洲精品菠萝久久久久久久| 一本色道久久综合亚洲精品按摩| 亚洲精品免费看| 欧美性猛交xxxx乱大交退制版 | 欧美性色黄大片| 亚洲综合一二区| 欧美亚洲高清一区二区三区不卡| 一区二区三区四区五区视频在线观看 | 欧美一级夜夜爽| 日韩和欧美一区二区| 日韩午夜在线观看| 久久国产日韩欧美精品| 欧美精品一区在线观看| 国产精品一区不卡| 国产精品不卡一区| 色天天综合久久久久综合片| 亚洲精品国产精华液| 欧美性大战久久久| 视频精品一区二区| 精品美女被调教视频大全网站| 九九国产精品视频| 国产日产欧美一区| 99久久精品国产毛片| 亚洲五码中文字幕| 欧美一个色资源| 国产馆精品极品| 1区2区3区国产精品| 91美女蜜桃在线| 午夜日韩在线观看| 久久综合国产精品| av在线不卡网| 亚洲小少妇裸体bbw| 欧美一级在线视频| 国模一区二区三区白浆| 中文字幕人成不卡一区| 欧美性受xxxx| 国产资源在线一区| 亚洲欧洲日产国码二区| 欧美日韩亚洲另类| 韩日精品视频一区| 亚洲欧洲国产专区| 欧美日韩亚洲综合在线| 国产一区二区三区免费看| 亚洲欧美色综合| 777xxx欧美| 成人深夜福利app| 亚洲一区二区3| 26uuu国产在线精品一区二区| 99视频热这里只有精品免费| 午夜欧美电影在线观看| 久久久精品天堂| 91网站在线观看视频| 六月丁香婷婷久久| 一区二区在线观看不卡| 日韩欧美电影一区| 色综合激情久久| 久草在线在线精品观看| 亚洲黄色av一区| 久久久久久久久久久99999| 色av成人天堂桃色av| 国产一区欧美一区| 亚洲一级二级三级在线免费观看| xvideos.蜜桃一区二区| 91成人在线精品| 国产一区免费电影| 亚洲成a天堂v人片| 国产精品久久一卡二卡| 欧美videofree性高清杂交| 91福利视频网站| 丰满放荡岳乱妇91ww| 热久久免费视频| 一级精品视频在线观看宜春院 | 日本一区中文字幕| 一区二区三区国产精品| 欧美国产1区2区| 欧美xxxx在线观看| 欧美日韩免费观看一区二区三区| 不卡电影免费在线播放一区| 免费成人美女在线观看| 亚洲女爱视频在线| 国产蜜臀97一区二区三区| 91精品国产乱| 欧美综合色免费| av亚洲精华国产精华精| 精品一区二区日韩| 蜜桃av一区二区三区| 亚洲成人综合视频| 亚洲乱码国产乱码精品精的特点| 日本一区二区在线不卡| 欧美精品一区二区三区久久久| 91精品国产综合久久精品性色| 色吊一区二区三区| bt欧美亚洲午夜电影天堂| 国产成人免费网站| 国产一区美女在线| 激情综合色播激情啊| 日本一区中文字幕| 视频一区在线视频| 亚洲一区成人在线| 一区二区日韩av| 亚洲最大的成人av| 亚洲欧美日韩在线不卡| 亚洲三级在线看| 1区2区3区精品视频| 中文字幕免费观看一区| 国产亚洲成aⅴ人片在线观看| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美videofree性高清杂交| 日韩欧美卡一卡二| 精品盗摄一区二区三区| 久久综合给合久久狠狠狠97色69| 欧美精品一区视频| 国产亚洲欧洲997久久综合| www国产精品av| 久久看人人爽人人| 欧美国产禁国产网站cc| 国产精品电影一区二区三区| 亚洲私人影院在线观看| 一区二区三区中文字幕| 亚洲一区二区在线免费看| 亚洲成在线观看| 美女国产一区二区| 国产精品综合二区|