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

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

?? logarithmicaxis.java

?? Web圖形化的Java庫
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
              //only 1 power of 10 value, it's > 0 and its resulting
              // tick value will be larger than lower bound of data
          --iBegCount;       //decrement to generate more ticks
        }

        double currentTickValue;
        String tickLabel;
        boolean zeroTickFlag = false;
        for (int i = iBegCount; i <= iEndCount; i++) {
            //for each power of 10 value; create ten ticks
            for (int j = 0; j < 10; ++j) {
                //for each tick to be displayed
                if (smallLogFlag) {
                    //small log values in use; create numeric value for tick
                    currentTickValue = Math.pow(10, i) + (Math.pow(10, i) * j);
                    if (expTickLabelsFlag 
                        || (i < 0 && currentTickValue > 0.0 && currentTickValue < 1.0)) {
                        //showing "1e#"-style ticks or negative exponent
                        // generating tick value between 0 & 1; show fewer
                        if (j == 0 || (i > -4 && j < 2)
                                   || currentTickValue >= upperBoundVal) {
                          //first tick of series, or not too small a value and
                          // one of first 3 ticks, or last tick to be displayed
                               //set exact number of fractional digits to be shown
                               // (no effect if showing "1e#"-style ticks):
                            numberFormatterObj.setMaximumFractionDigits(-i);
                               //create tick label (force use of fmt obj):
                            tickLabel = makeTickLabel(currentTickValue, true);
                        }
                        else {    //no tick label to be shown
                            tickLabel = "";
                        }
                    }
                    else {     //tick value not between 0 & 1
                               //show tick label if it's the first or last in
                               // the set, or if it's 1-5; beyond that show
                               // fewer as the values get larger:
                        tickLabel = (j < 1 || (i < 1 && j < 5) || (j < 4 - i) 
                                           || currentTickValue >= upperBoundVal) 
                                           ? makeTickLabel(currentTickValue) : "";
                    }
                }
                else { //not small log values in use; allow for values <= 0
                    if (zeroTickFlag) {   //if did zero tick last iter then
                        --j;              //decrement to do 1.0 tick now
                    }     //calculate power-of-ten value for tick:
                    currentTickValue = (i >= 0)
                        ? Math.pow(10, i) + (Math.pow(10, i) * j)
                        : -(Math.pow(10, -i) - (Math.pow(10, -i - 1) * j));
                    if (!zeroTickFlag) {    //did not do zero tick last iteration
                        if (Math.abs(currentTickValue - 1.0) < 0.0001
                            && lowerBoundVal <= 0.0 && upperBoundVal >= 0.0) {
                            //tick value is 1.0 and 0.0 is within data range
                            currentTickValue = 0.0;     //set tick value to zero
                            zeroTickFlag = true;        //indicate zero tick
                        }
                    }
                    else {     //did zero tick last iteration
                        zeroTickFlag = false;         //clear flag
                    }               //create tick label string:
                               //show tick label if "1e#"-style and it's one
                               // of the first two, if it's the first or last
                               // in the set, or if it's 1-5; beyond that
                               // show fewer as the values get larger:
                    tickLabel = ((expTickLabelsFlag && j < 2) 
                                || j < 1 
                                || (i < 1 && j < 5) || (j < 4 - i) 
                                || currentTickValue >= upperBoundVal) 
                                   ? makeTickLabel(currentTickValue) : "";
                }

                if (currentTickValue > upperBoundVal) {
                    return;   //if past highest data value then exit method
                }

                if (currentTickValue >= lowerBoundVal - SMALL_LOG_VALUE) {
                       //tick value not below lowest data value
                    double xx = translateValueToJava2D(currentTickValue, dataArea, edge);
                    Rectangle2D tickLabelBounds = getTickLabelFont().getStringBounds(
                                                  tickLabel, g2.getFontRenderContext());
                    float x = 0.0f;
                    float y = 0.0f;
                    Insets tickLabelInsets = getTickLabelInsets();
                    if (isVerticalTickLabels()) {
                        x = (float) (xx + tickLabelBounds.getHeight() / 2);
                        if (edge == RectangleEdge.TOP) {
                            y = (float) (dataArea.getMinY() - tickLabelInsets.bottom
                                                            - tickLabelBounds.getWidth());
                        }
                        else {
                            y = (float) (dataArea.getMaxY() + tickLabelInsets.top
                                                            + tickLabelBounds.getWidth());
                        }
                    }
                    else {
                        x = (float) (xx - tickLabelBounds.getWidth() / 2);
                        if (edge == RectangleEdge.TOP) {
                            y = (float) (dataArea.getMinY() - tickLabelInsets.bottom);
                        }
                        else {
                            y = (float) (dataArea.getMaxY() + tickLabelInsets.top
                                                            + tickLabelBounds.getHeight());
                        }
                    }
                    Tick tick = new Tick(new Double(currentTickValue), tickLabel, x, y);
                    getTicks().add(tick);
                }
            }
        }

    }

    /**
     * Calculates the positions of the tick labels for the axis, storing the
     * results in the tick label list (ready for drawing).
     *
     * @param g2  the graphics device.
     * @param plotArea  the area in which the plot and the axes should be drawn.
     * @param dataArea  the area in which the plot should be drawn.
     * @param edge  the axis location.
     */
    public void refreshTicksVertical(Graphics2D g2,
                                     Rectangle2D plotArea, Rectangle2D dataArea,
                                     RectangleEdge edge) {

        getTicks().clear();

        //get lower bound value:
        double lowerBoundVal = getRange().getLowerBound();
        //if small log values and lower bound value too small
        // then set to a small value (don't allow <= 0):
        if (smallLogFlag && lowerBoundVal < SMALL_LOG_VALUE) {
            lowerBoundVal = SMALL_LOG_VALUE;
        }
        //get upper bound value
        final double upperBoundVal = getRange().getUpperBound();

        //get log10 version of lower bound and round to integer:
        int iBegCount = (int) Math.rint(switchedLog10(lowerBoundVal));
        //get log10 version of upper bound and round to integer:
        final int iEndCount = (int) Math.rint(switchedLog10(upperBoundVal));

        if (iBegCount == iEndCount && iBegCount > 0 && Math.pow(10, iBegCount) > lowerBoundVal) {
              //only 1 power of 10 value, it's > 0 and its resulting
              // tick value will be larger than lower bound of data
          --iBegCount;       //decrement to generate more ticks
        }

        double tickVal;
        String tickLabel;
        boolean zeroTickFlag = false;
        for (int i = iBegCount; i <= iEndCount; i++) {
            //for each tick with a label to be displayed
            int jEndCount = 10;
            if (i == iEndCount) {
                jEndCount = 1;
            }

            for (int j = 0; j < jEndCount; j++) {
                //for each tick to be displayed
                if (smallLogFlag) {
                    //small log values in use
                    tickVal = Math.pow(10, i) + (Math.pow(10, i) * j);
                    if (j == 0) {
                        //first tick of group; create label text
                        if (log10TickLabelsFlag) {
                            //if flag then
                            tickLabel = "10^" + i;      //create "log10"-type label
                        }
                        else {    //not "log10"-type label
                            if (expTickLabelsFlag) {
                                //if flag then
                                tickLabel = "1e" + i;   //create "1e#"-type label
                            }
                            else {    //not "1e#"-type label
                                if (i >= 0) {   //if positive exponent then make integer
                                    tickLabel =  Long.toString((long) Math.rint(tickVal));
                                }
                                else {
                                    //negative exponent; create fractional value
                                    //set exact number of fractional digits to be shown:
                                    numberFormatterObj.setMaximumFractionDigits(-i);
                                    //create tick label:
                                    tickLabel = numberFormatterObj.format(tickVal);
                                }
                            }
                        }
                    }
                    else {   //not first tick to be displayed
                        tickLabel = "";     //no tick label
                    }
                }
                else { //not small log values in use; allow for values <= 0
                    if (zeroTickFlag) {      //if did zero tick last iter then
                        --j;
                    }               //decrement to do 1.0 tick now
                    tickVal = (i >= 0) ? Math.pow(10, i) + (Math.pow(10, i) * j)
                                       : -(Math.pow(10, -i) - (Math.pow(10, -i - 1) * j));
                    if (j == 0) {  //first tick of group
                        if (!zeroTickFlag) {     //did not do zero tick last iteration
                            if (i > iBegCount && i < iEndCount
                                              && Math.abs(tickVal - 1.0) < 0.0001) {
                                //not first or last tick on graph and value is 1.0
                                tickVal = 0.0;        //change value to 0.0
                                zeroTickFlag = true;  //indicate zero tick
                                tickLabel = "0";      //create label for tick
                            }
                            else {
                                //first or last tick on graph or value is 1.0
                                //create label for tick:
                                if (log10TickLabelsFlag) {
                                       //create "log10"-type label
                                    tickLabel = (((i < 0) ? "-" : "") + "10^" + Math.abs(i));
                                }
                                else {
                                    if (expTickLabelsFlag) {
                                           //create "1e#"-type label
                                        tickLabel = (((i < 0) ? "-" : "") + "1e" + Math.abs(i));
                                    }
                                    else {
                                           //create regular numeric label
                                        tickLabel = Long.toString((long) Math.rint(tickVal));
                                    }
                                }
                            }
                        }
                        else {     // did zero tick last iteration
                            tickLabel = "";         //no label
                            zeroTickFlag = false;   //clear flag
                        }
                    }
                    else {       // not first tick of group
                        tickLabel = "";           //no label
                        zeroTickFlag = false;     //make sure flag cleared
                    }
                }

                if (tickVal > upperBoundVal) {
                    return;     //if past highest data value then exit method
                }

                if (tickVal >= lowerBoundVal - SMALL_LOG_VALUE) {
                    //tick value not below lowest data value
                    //get Y-position for tick:
                    double yy = translateValueToJava2D(tickVal, dataArea, edge);
                    //get bounds for tick label:
                    Rectangle2D tickLabelBounds
                        = getTickLabelFont().getStringBounds(tickLabel, g2.getFontRenderContext());
                    //get X-position for tick label:
                    float x;
                    if (edge == RectangleEdge.LEFT) {
                        x = (float) (dataArea.getX()
                                     - tickLabelBounds.getWidth() - getTickLabelInsets().right);
                    }
                    else {
                        x = (float) (dataArea.getMaxX() + getTickLabelInsets().left);
                    }
                    //get Y-position for tick label:
                    float y = (float) (yy + (tickLabelBounds.getHeight() / 3));

                          //create tick object and add to list:
                    getTicks().add(new Tick(new Double(tickVal), tickLabel, x, y));
                }
            }
        }
    }

    /**
     * Converts the given value to a tick label string.
     *
     * @param val the value to convert.
     * @param forceFmtFlag true to force the number-formatter object
     * to be used.
     *
     * @return The tick label string.
     */
    protected String makeTickLabel(double val, boolean forceFmtFlag) {
      if (expTickLabelsFlag || forceFmtFlag) {
              //using exponents or force-formatter flag is set
              // (convert 'E' to lower-case 'e'):
        return numberFormatterObj.format(val).toLowerCase();
      }
      return getTickUnit().valueToString(val);
    }

    /**
     * Converts the given value to a tick label string.
     * @param val the value to convert.
     *
     * @return The tick label string.
     */
    protected String makeTickLabel(double val) {
        return makeTickLabel(val, false);
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产毛片精品视频| 亚洲成人av福利| 国产一区二区主播在线| 亚洲午夜私人影院| 亚洲三级理论片| 国产精品日产欧美久久久久| 国产综合久久久久影院| 亚洲国产精品激情在线观看| 国产毛片精品视频| 国产精品对白交换视频| 成人免费毛片app| 日韩美女久久久| 欧美日韩在线亚洲一区蜜芽| 日韩av电影免费观看高清完整版 | 亚洲影视资源网| 欧美精品视频www在线观看| 久久精品国产亚洲a| 亚洲日本电影在线| 亚洲视频一区二区在线观看| 欧美视频中文字幕| 91免费视频网址| 成人污视频在线观看| 国产一区二区在线免费观看| 日韩av电影天堂| 免费日本视频一区| 久久婷婷国产综合精品青草| 国产mv日韩mv欧美| 成人免费观看视频| 国内久久精品视频| 激情图片小说一区| 免费成人在线视频观看| 人人爽香蕉精品| 免费在线看成人av| 久久国产免费看| eeuss国产一区二区三区| 亚洲高清视频的网址| 91在线精品一区二区三区| 欧美三级一区二区| 亚洲人成网站精品片在线观看| 毛片一区二区三区| 777午夜精品免费视频| 欧美一区二区三区婷婷月色| 精品国产乱码久久久久久久久| 日韩美女视频一区二区在线观看| 久久尤物电影视频在线观看| 久久久国产午夜精品| 亚洲综合在线电影| 人人精品人人爱| 日本精品视频一区二区| 日韩午夜电影在线观看| 国产精品久久免费看| 日韩电影在线观看一区| av在线这里只有精品| 日韩精品一区二区三区蜜臀 | 风流少妇一区二区| 色诱亚洲精品久久久久久| 欧美一区二区免费视频| 国产精品第13页| 视频一区二区三区中文字幕| 国产二区国产一区在线观看| 欧美三级视频在线播放| 樱桃国产成人精品视频| 国产一区二区三区四区在线观看| 欧美少妇一区二区| 亚洲激情自拍视频| 99精品久久只有精品| 久久久国产一区二区三区四区小说| 亚洲一区二区三区四区的| 97国产一区二区| 亚洲国产经典视频| 成人免费高清视频在线观看| 精品国产乱码久久久久久久久 | 99久久精品免费看| 欧美一级片在线| 蜜臀99久久精品久久久久久软件| 制服丝袜在线91| 久久99久久99小草精品免视看| 欧美成人一区二区三区片免费| 久久精品99国产精品| 中文字幕乱码日本亚洲一区二区| 久久国产人妖系列| 欧美激情一区二区三区不卡| 99re热视频精品| 五月天国产精品| 中文字幕+乱码+中文字幕一区| 欧洲在线/亚洲| 国产69精品久久久久毛片| 亚洲激情一二三区| 《视频一区视频二区| 日韩欧美精品三级| 91网站最新网址| 99久久精品一区二区| 国产suv一区二区三区88区| 午夜欧美电影在线观看| 亚洲日本韩国一区| 亚洲女爱视频在线| 国产精品对白交换视频| 国产精品不卡一区二区三区| 久久综合色婷婷| 精品国精品自拍自在线| 91精品国产综合久久福利软件| 91免费视频大全| 91一区二区三区在线观看| 大白屁股一区二区视频| 欧美亚洲国产一区二区三区| 91香蕉视频在线| 精品视频在线免费观看| 在线免费观看一区| 欧美日韩精品一区二区三区蜜桃 | 91精品午夜视频| 91麻豆精品久久久久蜜臀| 欧美一区二区三区日韩| 日韩欧美一区二区免费| 最新久久zyz资源站| 亚洲综合免费观看高清完整版在线| 亚洲综合区在线| 国产九九视频一区二区三区| 成人综合在线视频| 欧美亚男人的天堂| 久久久www成人免费无遮挡大片| 国产视频不卡一区| 一区二区三区国产精品| 九九久久精品视频| 色婷婷av一区二区三区大白胸| 欧美一区二区三区在线观看| 久久嫩草精品久久久精品一| 亚洲精品国产品国语在线app| 日韩在线观看一区二区| 92国产精品观看| 久久综合久久综合久久综合| 一区二区三区在线观看欧美 | 亚洲一区二区3| 五月激情综合网| 91黄色免费看| 国产日本欧洲亚洲| 国模无码大尺度一区二区三区| 91免费国产视频网站| www亚洲一区| 玖玖九九国产精品| 欧美变态tickle挠乳网站| 激情五月播播久久久精品| 91精品国产91久久久久久一区二区| 亚洲女女做受ⅹxx高潮| 欧美午夜不卡视频| 午夜天堂影视香蕉久久| 成人视屏免费看| 久久婷婷久久一区二区三区| 爽好久久久欧美精品| 欧美色网一区二区| 亚洲二区视频在线| 欧美一个色资源| 国产一区二区三区日韩| 2020国产精品| 播五月开心婷婷综合| 亚洲情趣在线观看| 欧美网站一区二区| 九色综合狠狠综合久久| 久久久久久久久久久久久女国产乱| 国产永久精品大片wwwapp| 欧美国产97人人爽人人喊| 91麻豆精品秘密| 九九九久久久精品| 亚洲女女做受ⅹxx高潮| 欧美一激情一区二区三区| 国产不卡视频在线观看| 首页国产欧美日韩丝袜| 中文欧美字幕免费| 欧美视频三区在线播放| gogo大胆日本视频一区| 日本最新不卡在线| 日韩美女视频一区| 精品国产一二三区| 欧美在线你懂得| av电影在线观看完整版一区二区| 日韩不卡在线观看日韩不卡视频| 国产午夜亚洲精品羞羞网站| 欧美日韩久久一区| 91视频在线观看| 国产成人av资源| 精品一区二区三区在线播放视频| 亚洲v中文字幕| 亚洲成人一区在线| 中文字幕一区三区| 国产午夜亚洲精品午夜鲁丝片| 色综合久久久久网| 精品一区二区三区免费| 精一区二区三区| 精品一区二区三区久久久| 久久精品国产色蜜蜜麻豆| 九色porny丨国产精品| 九九国产精品视频| 国产丶欧美丶日本不卡视频| 国产黄色精品网站| 成人黄色在线看| 一本色道a无线码一区v| 色中色一区二区| 制服.丝袜.亚洲.中文.综合| 欧美电影影音先锋| 精品久久久久久久久久久久包黑料 | 亚洲一区二区不卡免费|