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

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

?? dataset.java

?? java 作圖的程序
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
   */      public void draw_data(Graphics g, Rectangle bounds) {           Color c;           if ( xaxis != null ) {                xmax = xaxis.maximum;                xmin = xaxis.minimum;           }           if ( yaxis != null ) {                ymax = yaxis.maximum;                ymin = yaxis.minimum;           }                      xrange = xmax - xmin;           yrange = ymax - ymin;	   /*	   ** draw the legend before we clip the data window	   */           draw_legend(g,bounds);	   /*	   ** Clip the data window	   */           if(clipping) g.clipRect(bounds.x, bounds.y,                                    bounds.width, bounds.height);           c = g.getColor();           if( linestyle != DataSet.NOLINE ) {               if ( linecolor != null) g.setColor(linecolor);               else                    g.setColor(c);               draw_lines(g,bounds);           }               if( marker > 0 ) {               if(markercolor != null) g.setColor(markercolor);               else                    g.setColor(c);               draw_markers(g,bounds);           }               g.setColor(c);      }  /**   * return the data X maximum.   */      public double getXmax() {  return dxmax; }   /**   * return the data X minimum.   */      public double getXmin() {  return dxmin; }   /**   * return the data Y maximum.   */      public double getYmax() {  return dymax; }   /**   * return the data Y minimum.   */      public double getYmin() {  return dymin; }        /**   * Define a data legend in the graph window   * @param x    pixel position of the legend.   * @param y    pixel position of the legend.   * @param text text to display in the legend   */       public void legend(int x, int y, String text) {           if(text == null) { legend_text = null;  return; }           if(legend_text == null) legend_text = new TextLine(text);           else                    legend_text.setText(text);           legend_text.setJustification(TextLine.LEFT);           legend_ix    = x;           legend_iy    = y;           legend_dx    = 0.0;           legend_dy    = 0.0;      }  /**   * Define a data legend in the graph window   * @param x    data position of the legend.   * @param y    data position of the legend.   * @param text text to display in the legend   */       public void legend(double x, double y, String text) {           if(text == null) { legend_text = null;  return; }           if(legend_text == null) legend_text = new TextLine(text);           else                    legend_text.setText(text);           legend_text.setJustification(TextLine.LEFT);           legend_dx    = x;           legend_dy    = y;           legend_ix    = 0;           legend_iy    = 0;      }  /**   * Set the font to be used in the legend   * @param f font   */      public void legendFont(Font f) {           if(f == null) return;           if(legend_text == null) legend_text = new TextLine();           legend_text.setFont(f);      }  /**   * Set the color for the legend text   * @param c color   */      public void legendColor(Color c) {           if(c == null) return;           if(legend_text == null) legend_text = new TextLine();           legend_text.setColor(c);      }  /**   * Return the number of data points in the DataSet   * @return number of (x,y0 points.   */      public int dataPoints() {  return length/stride; }  /**   * get the data point at the parsed index. The first (x,y) pair   * is at index 0.   * @param index Data point index   * @return array containing the (x,y) pair.   */      public double[] getPoint(int index) {            double point[] = new double[stride];            int i = index*stride;            if( index < 0 || i > length-stride ) return null;            for(int j=0; j<stride; j++) point[j] = data[i+j];                        return point;	  }  /**   * Return the data point that is closest to the parsed (x,y) position   * @param x    * @param y (x,y) position in data space.    * @return array containing the closest data point.   */      public double[] getClosestPoint(double x, double y) {            double point[] = {0.0, 0.0, 0.0};            int i;            double xdiff, ydiff, dist2;            xdiff = data[0] - x;            ydiff = data[1] - y;                          point[0] = data[0];            point[1] = data[1];            point[2] = xdiff*xdiff + ydiff*ydiff;                         for(i=stride; i<length-1; i+=stride) {                xdiff = data[i  ] - x;                ydiff = data[i+1] - y;                dist2 = xdiff*xdiff + ydiff*ydiff;                if(dist2 < point[2]) {                    point[0] = data[i  ];                    point[1] = data[i+1];                    point[2] = dist2;		  }           }           //System.out.println("DataSet: closestpoint "+point[0]+", "+point[1]+", "+point[2]);           return point;            	  }/************************ Protected Methods*********************/  /**   * Draw into the data window the straight line segments joining the   * data points.   * @param g Graphics context   * @param w Data window   */      protected void draw_lines(Graphics g, Rectangle w) {          int i;          int j;          boolean inside0 = false;          boolean inside1 = false;          double x,y;          int x0 = 0 , y0 = 0;          int x1 = 0 , y1 = 0;//     Calculate the clipping rectangle          Rectangle clip = g.getClipRect();          int xcmin = clip.x;          int xcmax = clip.x + clip.width;          int ycmin = clip.y;          int ycmax = clip.y + clip.height;//    Is there any data to draw? Sometimes the draw command will//    will be called before any data has been placed in the class.          if( data == null || data.length < stride ) return;          //          System.out.println("Drawing Data Lines!");//    Is the first point inside the drawing region ?          if( (inside0 = inside(data[0], data[1])) ) {              x0 = (int)(w.x + ((data[0]-xmin)/xrange)*w.width);              y0 = (int)(w.y + (1.0 - (data[1]-ymin)/yrange)*w.height);              if( x0 < xcmin || x0 > xcmax ||                   y0 < ycmin || y0 > ycmax)  inside0 = false;          }          for(i=stride; i<length; i+=stride) {//        Is this point inside the drawing region?              inside1 = inside( data[i], data[i+1]);             //        If one point is inside the drawing region calculate the second point              if ( inside1 || inside0 ) {               x1 = (int)(w.x + ((data[i]-xmin)/xrange)*w.width);               y1 = (int)(w.y + (1.0 - (data[i+1]-ymin)/yrange)*w.height);               if( x1 < xcmin || x1 > xcmax ||                    y1 < ycmin || y1 > ycmax)  inside1 = false;              }//        If the second point is inside calculate the first point if it//        was outside              if ( !inside0 && inside1 ) {                x0 = (int)(w.x + ((data[i-stride]-xmin)/xrange)*w.width);                y0 = (int)(w.y + (1.0 - (data[i-stride+1]-ymin)/yrange)*w.height);              }//        If either point is inside draw the segment              if ( inside0 || inside1 )  {                      g.drawLine(x0,y0,x1,y1);              }/***        The reason for the convolution above is to avoid calculating**        the points over and over. Now just copy the second point to the**        first and grab the next point*/              inside0 = inside1;              x0 = x1;              y0 = y1;          }      }  /**   *  Return true if the point (x,y) is inside the allowed data range.   */      protected boolean inside(double x, double y) {          if( x >= xmin && x <= xmax &&               y >= ymin && y <= ymax )  return true;                    return false;      }  /**   *  Draw the markers.   *  Only markers inside the specified range will be drawn. Also markers   *  close the edge of the clipping region will be clipped.   * @param g Graphics context   * @param w data window   * @see graph.Markers   */      protected void draw_markers(Graphics g, Rectangle w) {          int x1,y1;          int i;//     Calculate the clipping rectangle          Rectangle clip = g.getClipRect();          int xcmin = clip.x;          int xcmax = clip.x + clip.width;          int ycmin = clip.y;          int ycmax = clip.y + clip.height;/***        Load the marker specified for this data*/          Markers m = g2d.getMarkers();          if( m == null) return;//          System.out.println("Drawing Data Markers!");          for(i=0; i<length; i+=stride) {              if( inside( data[i], data[i+1]) ) {                x1 = (int)(w.x + ((data[i]-xmin)/xrange)*w.width);                y1 = (int)(w.y + (1.0 - (data[i+1]-ymin)/yrange)*w.height);                if( x1 >= xcmin && x1 <= xcmax &&                    y1 >= ycmin && y1 <= ycmax )                         m.draw(g, marker, markerscale, x1, y1);                }          }      }  /**   * Draw a legend for this data set   * @param g Graphics context   * @param w Data Window   */      protected void draw_legend(Graphics g, Rectangle w) {          Color c = g.getColor();          Markers m = null;          if( legend_text == null) return;          if( legend_text.isNull() ) return;          if( legend_ix == 0 && legend_iy == 0 ) {                legend_ix = (int)(w.x + ((legend_dx-xmin)/xrange)*w.width);                legend_iy = (int)(w.y + (1.0 - (legend_dy-ymin)/yrange)*w.height);	  }          if( linestyle != DataSet.NOLINE ) {              if ( linecolor != null) g.setColor(linecolor);              g.drawLine(legend_ix,legend_iy,legend_ix+legend_length,legend_iy);          }          if( marker > 0 ) {               m = g2d.getMarkers();               if( m != null) {                  if(markercolor != null) g.setColor(markercolor);                  else                    g.setColor(c);                  m.draw(g,marker,1.0, legend_ix+legend_length/2, legend_iy);               }          }          legend_text.draw( g,                        legend_ix+legend_length+legend_text.charWidth(g,' '),                        legend_iy+legend_text.getAscent(g)/3);          g.setColor(c);      }  /**   * Calculate the range of the data. This modifies dxmin,dxmax,dymin,dymax   * and xmin,xmax,ymin,ymax   */      protected void range(int stride) {           int i;           if( length >= stride ) {              dxmax = data[0];              dymax = data[1];              dxmin = dxmax;              dymin = dymax;           } else {               dxmin = 0.0;               dxmax = 0.0;               dymin = 0.0;               dymax = 0.0;           }           for(i=stride; i<length; i+=stride ) {             if( dxmax < data[i] )   { dxmax = data[i]; }             else             if( dxmin > data[i] )   { dxmin = data[i]; }             if( dymax < data[i+1] ) { dymax = data[i+1]; }             else             if( dymin > data[i+1] ) { dymin = data[i+1]; }           }           if( xaxis == null) {              xmin = dxmin;              xmax = dxmax;           }           if( yaxis == null) {              ymin = dymin;              ymax = dymax;           }     }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看视频一区二区欧美日韩 | 日韩一区二区免费在线观看| 69p69国产精品| 国产欧美日韩三区| 亚洲成a人v欧美综合天堂 | 91啪亚洲精品| 26uuu色噜噜精品一区| 亚洲综合图片区| 国产+成+人+亚洲欧洲自线| 久久精品欧美日韩精品 | 99久久综合色| 欧美精品一区二区三区视频| 亚洲一区二区三区四区在线观看| 国产成人免费视| 欧美一二三区在线| 亚洲va国产va欧美va观看| 91麻豆精品一区二区三区| 国产日本一区二区| 国产麻豆9l精品三级站| 国产精品国产三级国产有无不卡 | 激情亚洲综合在线| 欧美理论电影在线| 亚洲成人综合网站| 色88888久久久久久影院按摩| 国产精品网站一区| 国产激情一区二区三区四区| 精品国产sm最大网站免费看| 日本一区中文字幕| 欧美精品1区2区| 国产成人免费视频精品含羞草妖精 | 国产亚洲精品超碰| 国产在线精品不卡| 久久久亚洲综合| 国产麻豆精品久久一二三| 2024国产精品| 国产成人夜色高潮福利影视| 久久久久99精品一区| 国产精品亚洲第一区在线暖暖韩国| 国产精品你懂的| 国产精品一区在线| 欧美韩日一区二区三区四区| 国产**成人网毛片九色| 国产精品久久久久影院色老大| 国产精品白丝av| 国产精品视频麻豆| 99视频有精品| 亚洲国产成人tv| 欧美一区二区三区四区五区| 国产主播一区二区三区| 国产精品麻豆99久久久久久| 欧美一区二区三区白人| 日韩—二三区免费观看av| 欧美mv和日韩mv国产网站| 黄页视频在线91| 亚洲欧洲国产日本综合| 欧美日韩免费电影| 国精产品一区一区三区mba视频| 久久久国际精品| 在线看一区二区| 毛片av一区二区三区| 欧美激情在线免费观看| 91美女蜜桃在线| 国产成人在线电影| 亚洲一区欧美一区| 精品久久久久久久人人人人传媒| 国产91精品一区二区| 一区二区三区在线影院| 日韩一区二区三区四区五区六区 | 成人精品小蝌蚪| 亚洲一级不卡视频| 26uuu久久综合| 91蜜桃在线免费视频| 免费成人在线网站| 亚洲成人你懂的| 久久精品视频一区二区三区| www.欧美精品一二区| 蜜臀va亚洲va欧美va天堂| 国产精品美女久久久久aⅴ| 欧美精品精品一区| 成人久久视频在线观看| 卡一卡二国产精品| 亚洲欧美综合在线精品| 日韩三级在线免费观看| 色婷婷亚洲婷婷| 国产在线播放一区三区四| 久久激情五月激情| 亚洲美女精品一区| 久久久99免费| 欧美一区二区三区影视| 色拍拍在线精品视频8848| 国内精品视频666| 亚洲一级二级在线| 日韩毛片高清在线播放| 欧美成人一区二区三区| 欧美三级电影在线看| 成人免费看黄yyy456| 国产毛片精品一区| 男男gaygay亚洲| 成人在线综合网站| 免费av网站大全久久| 亚洲午夜久久久久中文字幕久| 欧美国产精品劲爆| 久久综合久久综合久久| 欧美一区二区国产| 欧美探花视频资源| 色综合色综合色综合 | 久久色在线观看| 91精品久久久久久久久99蜜臂| 99视频超级精品| 成人国产精品免费观看视频| 色婷婷综合中文久久一本| 国产成人激情av| 国产永久精品大片wwwapp| 国内精品第一页| 久久国产欧美日韩精品| 久久99国产精品久久| 日本sm残虐另类| 日韩精品亚洲一区| 日本系列欧美系列| 日本大胆欧美人术艺术动态| 激情欧美一区二区| 日本丰满少妇一区二区三区| 国产高清在线精品| 日韩女优av电影| 在线观看一区日韩| 韩国理伦片一区二区三区在线播放| 国内外成人在线视频| 色悠悠久久综合| 久久久不卡网国产精品一区| 亚洲午夜久久久久久久久电影院 | 亚洲一区二区视频在线| 国产在线日韩欧美| 国产精品伦一区二区三级视频| 亚洲午夜影视影院在线观看| 国产精品一区一区三区| 欧美精品久久99| 亚洲欧美视频在线观看视频| 精品亚洲成a人| 精品视频一区 二区 三区| 国产精品久久久久久久第一福利| 免费在线欧美视频| 欧美少妇一区二区| 国产精品你懂的在线| 国产综合色在线视频区| 欧美日韩日本视频| 亚洲人一二三区| 国产成人激情av| 精品日韩一区二区| 成人免费视频一区| 久久天堂av综合合色蜜桃网| 日日夜夜精品视频天天综合网| 99精品欧美一区| 久久影院视频免费| 日韩精品亚洲专区| 欧美日韩三级一区| 亚洲综合在线观看视频| 99久久精品一区| 国产精品三级电影| 丁香五精品蜜臀久久久久99网站 | 亚洲国产精品欧美一二99| 91色综合久久久久婷婷| 亚洲综合区在线| 欧美在线三级电影| 一区二区三区在线视频免费观看| 成人激情午夜影院| 国产精品人人做人人爽人人添| 精品写真视频在线观看| 精品久久久久久无| 九九热在线视频观看这里只有精品| 在线播放国产精品二区一二区四区 | 日韩精品乱码av一区二区| 欧美在线免费观看亚洲| 亚洲乱码中文字幕| 欧美综合欧美视频| 高清国产一区二区| 欧美激情在线一区二区| 国产成人综合在线观看| 国产欧美精品区一区二区三区| 国产福利91精品| 中文字幕高清不卡| 91在线观看地址| 一区二区激情小说| 欧美日本一道本| 久久99国产精品免费网站| 2023国产精品自拍| 成人av网站在线观看| 亚洲天堂av一区| 欧美日韩一级片网站| 蜜桃av一区二区三区电影| 久久影院电视剧免费观看| 成人永久aaa| 成人自拍视频在线| 亚洲日本中文字幕区| 精品视频免费看| 久久成人久久鬼色| 国产色综合久久| 在线看国产一区| 男男成人高潮片免费网站| 国产精品污污网站在线观看| 欧美影片第一页|