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

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

?? fastscatterplot.java

?? Web圖形化的Java庫
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
        drawOutline(g2, dataArea);

    }

    /**
     * Draws a representation of the data within the dataArea region.
     * <P>
     * The <code>info</code> and <code>crosshairInfo</code> arguments may be <code>null</code>.
     *
     * @param g2  the graphics device.
     * @param dataArea  the region in which the data is to be drawn.
     * @param info  an optional object for collection dimension information.
     * @param crosshairInfo  an optional object for collecting crosshair info.
     */
    public void render(Graphics2D g2, Rectangle2D dataArea,
                       ChartRenderingInfo info, CrosshairInfo crosshairInfo) {

        g2.setPaint(Color.red);
        if (this.data != null) {
            for (int i = 0; i < data[0].length; i++) {
                float x = data[0][i];
                float y = data[1][i];
                int transX = (int) this.domainAxis.translateValueToJava2D(x, dataArea,
                                                                          RectangleEdge.BOTTOM);
                int transY = (int) this.rangeAxis.translateValueToJava2D(y, dataArea,
                                                                         RectangleEdge.LEFT);
                g2.fillRect(transX, transY, 1, 1);
            }
        }

    }

    /**
     * Returns the range of data values to be plotted along the axis.
     *
     * @param axis  the axis.
     *
     * @return  the range.
     */
    public Range getDataRange(ValueAxis axis) {

        Range result = null;
        if (axis == this.domainAxis) {
            result = this.xDataRange;
        }
        else if (axis == this.rangeAxis) {
            result = this.yDataRange;
        }
        return result;
    }

    /**
     * Calculates the X data range.
     *
     * @param data  the data.
     *
     * @return the range.
     */
    private Range calculateXDataRange(float[][] data) {
        
        Range result = null;
        
        if (data != null) {
            float lowest = Float.POSITIVE_INFINITY;
            float highest = Float.NEGATIVE_INFINITY;
            for (int i = 0; i < data[0].length; i++) {
                float v = data[0][i];
                if (v < lowest) {
                    lowest = v;
                }
                if (v > highest) {
                    highest = v;
                }
            }
            if (lowest <= highest) {
                result = new Range(lowest, highest);
            }
        }
        
        return result;
        
    }

    /**
     * Calculates the Y data range.
     *
     * @param data  the data.
     *
     * @return the range.
     */
    private Range calculateYDataRange(float[][] data) {
        
        Range result = null;
        
        if (data != null) {
            float lowest = Float.POSITIVE_INFINITY;
            float highest = Float.NEGATIVE_INFINITY;
            for (int i = 0; i < data[0].length; i++) {
                float v = data[1][i];
                if (v < lowest) {
                    lowest = v;
                }
                if (v > highest) {
                    highest = v;
                }
            }
            if (lowest <= highest) {
                result = new Range(lowest, highest);
            }
        }
        return result;
        
    }

    /**
     * Multiplies the range on the horizontal axis/axes by the specified factor (not yet 
     * implemented).
     *
     * @param factor  the zoom factor.
     */
    public void zoomHorizontalAxes(double factor) {
        // zoom the domain axis
    }

    /**
     * Zooms in on the horizontal axes (not yet implemented).
     * 
     * @param lowerPercent  the new lower bound as a percentage of the current range.
     * @param upperPercent  the new upper bound as a percentage of the current range.
     */
    public void zoomHorizontalAxes(double lowerPercent, double upperPercent) {
        // zoom the domain axis
    }

    /**
     * Multiplies the range on the vertical axis/axes by the specified factor (not yet implemented).
     *
     * @param factor  the zoom factor.
     */
    public void zoomVerticalAxes(double factor) {
            // zoom the range axis
            // zoom all the secondary axes
    }

    /**
     * Zooms in on the vertical axes (not yet implemented).
     * 
     * @param lowerPercent  the new lower bound as a percentage of the current range.
     * @param upperPercent  the new upper bound as a percentage of the current range.
     */
    public void zoomVerticalAxes(double lowerPercent, double upperPercent) {
        // zoom the domain axis
    }

    /**
     * Tests an object for equality with this instance.
     * 
     * @param object  the object to test.
     * 
     * @return A boolean.
     */
    public boolean equals(Object object) {
    
        if (object ==  null) {
            return false;    
        }
        
        if (object == this) {
            return true;
        }
        
        if (super.equals(object) && object instanceof FastScatterPlot) {
            FastScatterPlot fsp = (FastScatterPlot) object;
            boolean b0 = ArrayUtils.equal(this.data, fsp.data);
            boolean b1 = ObjectUtils.equal(this.domainAxis, fsp.domainAxis);
            boolean b2 = ObjectUtils.equal(this.rangeAxis, fsp.rangeAxis);
            boolean b3 = ObjectUtils.equal(this.paint, fsp.paint);
            
            return b0 && b1 && b2 && b3;

        }
        
        return false;
    }
    
    /**
     * Returns a clone of the plot.
     * 
     * @return A clone.
     * 
     * @throws CloneNotSupportedException if some component of the plot does not support cloning.
     */
    public Object clone() throws CloneNotSupportedException {
    
        FastScatterPlot clone = (FastScatterPlot) super.clone();    
        
        if (this.data != null) {
            clone.data = ArrayUtils.clone(this.data);    
        }
        
        if (this.domainAxis != null) {
            clone.domainAxis = (ValueAxis) this.domainAxis.clone();
        }
        
        if (this.rangeAxis != null) {
            clone.rangeAxis = (ValueAxis) this.rangeAxis.clone();
        }
            
        return clone;
        
    }

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

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

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费在线观看视频一区| 亚洲一区二区三区视频在线| 日韩精品资源二区在线| 欧美成人性战久久| 最新热久久免费视频| 亚洲高清在线精品| 国产一区二区视频在线| 99国产精品久久久久久久久久| 色屁屁一区二区| 精品免费视频.| 首页国产丝袜综合| 成人avav影音| 欧美电视剧免费全集观看| 国产精品久久久久婷婷二区次| 亚洲一区二区三区影院| 国产福利不卡视频| 欧美精品视频www在线观看| 国产午夜精品久久久久久免费视| 亚洲精品自拍动漫在线| 国产一区二区久久| 波多野结衣中文字幕一区 | av在线综合网| 日韩精品一区在线观看| 首页国产欧美日韩丝袜| 成人性生交大片免费看中文| 欧美午夜精品一区| 亚洲老司机在线| 色婷婷国产精品综合在线观看| 国产午夜亚洲精品理论片色戒| 激情图区综合网| 精品99一区二区| 国产一区 二区| 久久综合九色综合欧美98| 免费成人av在线播放| 欧美精品在线观看一区二区| 亚洲国产精品久久人人爱蜜臀 | 91精品国产综合久久久久久 | 91在线看国产| 亚洲精品成a人| 成人aaaa免费全部观看| 亚洲美女一区二区三区| 色欧美乱欧美15图片| 亚洲一二三区在线观看| 欧美日韩精品欧美日韩精品一 | 欧美性xxxxxxxx| 亚洲国产一区二区三区青草影视 | 18成人在线视频| 欧美一区二区在线免费播放| 美女免费视频一区二区| 欧美激情一区二区三区在线| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲综合一区二区精品导航| 日韩女同互慰一区二区| 91在线观看下载| 麻豆精品国产传媒mv男同| 久久亚洲综合av| 欧美视频你懂的| 成人精品视频一区二区三区尤物| 最新欧美精品一区二区三区| 日韩欧美三级在线| 欧美在线视频全部完| 国产精品香蕉一区二区三区| 2023国产精品视频| 欧美日韩激情一区二区| bt欧美亚洲午夜电影天堂| 日韩av一二三| 亚洲尤物视频在线| 国产精品国产三级国产aⅴ无密码| 欧美在线观看视频一区二区| 成人高清视频免费观看| 久久精品国产亚洲高清剧情介绍| 亚洲另类春色校园小说| 国产亚洲一区二区在线观看| 一本色道久久综合亚洲91| 成人黄色免费短视频| 免费av网站大全久久| 亚洲精品福利视频网站| 日韩毛片精品高清免费| 国产精品视频观看| 国产精品麻豆视频| 国产精品视频一区二区三区不卡| 久久新电视剧免费观看| 26uuu国产电影一区二区| 7777精品伊人久久久大香线蕉完整版 | 国产精品18久久久久久久久| 日韩不卡一二三区| 久久精品99国产国产精| 韩国v欧美v日本v亚洲v| 国产成人午夜电影网| 国产成人亚洲精品狼色在线 | 欧美一区二区三区在线视频| 欧美一区二区大片| 国产亚洲精品aa午夜观看| 国产精品乱码人人做人人爱| 亚洲特黄一级片| 日本欧美肥老太交大片| 国产电影精品久久禁18| 99re在线精品| 日韩午夜av电影| 中文字幕第一区第二区| 午夜影院久久久| 成人激情动漫在线观看| 欧美精品一级二级三级| 国产精品高清亚洲| 激情图片小说一区| 欧美三级电影一区| 国产精品久久久久婷婷二区次| 蜜桃精品视频在线| 99国产精品久久久| 国产亚洲欧美在线| 青娱乐精品视频| 欧美中文字幕一区| 综合婷婷亚洲小说| 国产很黄免费观看久久| 5858s免费视频成人| 性久久久久久久久久久久| 91网站最新地址| 中文字幕中文字幕一区| 久草在线在线精品观看| 欧美高清视频www夜色资源网| 亚洲欧洲性图库| 99免费精品在线观看| 欧美国产精品专区| 国产精品99久久久久久有的能看| 精品奇米国产一区二区三区| 久久国产精品一区二区| 日韩一区二区在线观看| 久久精品国产亚洲高清剧情介绍| 欧美日韩三级视频| 免费精品视频最新在线| 久久综合网色—综合色88| 麻豆成人91精品二区三区| 欧美成人午夜电影| 欧美日韩视频在线第一区 | 欧美性感一区二区三区| 丝瓜av网站精品一区二区| www激情久久| 国产成人在线影院| 中文字幕在线观看一区二区| 色综合天天在线| 美女视频免费一区| 中文字幕视频一区二区三区久| 在线免费观看视频一区| 久久99久久99小草精品免视看| 国产欧美日韩在线| 欧美久久一二区| 国产精品2024| 天天综合天天做天天综合| 欧美精品一区二| 欧美中文字幕一区二区三区亚洲| 蜜桃av一区二区| 亚洲一卡二卡三卡四卡无卡久久| 欧美成人一级视频| 欧美顶级少妇做爰| 在线亚洲人成电影网站色www| 国产精品综合在线视频| 天堂va蜜桃一区二区三区漫画版| 欧美激情在线一区二区三区| 在线播放亚洲一区| 欧美中文字幕亚洲一区二区va在线| 精品亚洲aⅴ乱码一区二区三区| 国产精品久线在线观看| 26uuu色噜噜精品一区| 日韩欧美国产一区在线观看| 99久久精品国产毛片| 国产999精品久久| 粉嫩13p一区二区三区| 美女任你摸久久 | 日韩欧美国产一二三区| 欧美性受xxxx| 欧美日韩一区二区三区在线看| 99riav久久精品riav| 成人夜色视频网站在线观看| 国产成人啪免费观看软件| 国产成人av福利| 国产91精品在线观看| 福利91精品一区二区三区| 91麻豆自制传媒国产之光| 日本道免费精品一区二区三区| 在线免费视频一区二区| 91精品免费观看| 欧美国产一区二区在线观看 | 另类小说欧美激情| 成人91在线观看| 91精品中文字幕一区二区三区| 久久综合视频网| 一区二区三区精品久久久| 日韩不卡一二三区| 床上的激情91.| 欧美日韩aaaaaa| 中文在线一区二区| 午夜精品久久久久久久| 国产成人在线视频网站| 在线观看一区日韩| 欧美高清视频在线高清观看mv色露露十八 | 欧美一区二区三区思思人| 91麻豆精品国产91久久久久久久久| 欧美一级欧美三级在线观看| 欧美日韩高清一区二区三区| 日韩精品在线一区|