2011-12-22 45 views
0

我已經創建了使用Java和擺動的圖形,但它只是用於顯示正數和一些負數小於-14的想法,我用是好的:如何在獲取不同範圍的數字時放大/縮小圖形?

  • 創建一個盒子
  • 加我的X和Y軸標籤
  • 得到的數字陣列
  • 獲得最大的數指明的數組
  • 的最大數量使用下面的代碼創建一個規模爲:


double scale = (double)(height - 2*borderSpace)/getMax(); 

,然後繪製我的線圖,上面的解決方案是完美的,因爲我做了一招

int height2 = getHeight() - getHeight()/2; 
double scale = (double)(height2 - 2*borderSpace)/getMax(); 

這僅僅是工作到-14不得少於負值正值。

畫線我使用此代碼

//borderspace = 20 
double xInc = (double)(width - 2*borderSpace)/(data.length-1); 
     double scale = (double)(height - 2*borderSpace)/getMax(); 
     g2.setPaint(Color.green.darker()); 
     for(int i = 0 ; i < data.length-1; i++) { 
      double x1 = borderSpace + i*xInc; 
      double y1 = height - borderSpace - scale*data[i]; 

      double x2 = borderSpace + (i+1)*xInc; 
      double y2 = height - borderSpace - scale*data[i+1]; 
      g2.draw(new Line2D.Double(x1, y1, x2, y2)); 
     } 

我想有盒子,但Y軸應該是左側(我不想改變Y軸的地方),我只是想讓改變發生X軸的情況下,具有使之更明確,你可以看看這張照片負數 的:

enter image description here

+0

對不起,你的問題很不清楚。你還沒有發佈任何可以測試的代碼。 – 2011-12-22 15:16:09

+0

我再次添加了我的繪圖線方法 – 2011-12-22 15:23:42

+1

,而不是一段可以測試的代碼。這也開始感覺像家庭作業,你有基本的計算冗餘像'height2 = getHeight() - getHeight()/ 2';因爲'height2 = getHeight()/ 2'就足夠了......無論如何,你在繪圖方法的任何地方都沒有使用height2 ......或者如果你不清楚如何。 – 2011-12-22 15:32:04

回答

1

你可能想看看JFreeChart來創建圖表而不是試圖從頭開始醞釀你自己的解決方案。

+0

我不想使用任何形式的第三方解決方案 – 2011-12-22 15:20:54

相關問題