2009-04-21 80 views
0

我想繪製一個X和Y整數數組到一個Java框架中的面板。Containing drawing to a panel area

畫線的最佳方式是什麼(目前我正在使用Graphic的drawPolyline)?

我怎樣才能高效縮放的整數值,以便他們都知道最大(Y)值的面板區域適合?

更新,例如

public void paint(Graphics g) 
{ 
    int height = panel.getHeight(); 
    int width = panel.getWidth(); 
    int[] xPoints = { ... values ... }; 
    int[] yPoints = { ... values ... }; 
    int nPoints = dataLength; 
    // Scale xPoints and yPoints so they fit in the area of width and height 
    // and draw line 
    g.drawPolyline(xPoints, yPoints, nPoints); 
    g.dispose(); 
} 
+0

你是什麼意思「繪製一個X和Y整數的數組」 - 你想繪製這些整數指定的點,還是繪製連接它們的線,或者自己畫出數字? – 2009-04-21 23:31:30

回答

2

不知道這兩個x和y的最大值,我不認爲這是可以做到的,因爲你不能再計算所需的規模。但是如果你有一組點,那麼你當然可以搜索它來找到最小和最大的x和y值。

如果您有獲得最大值的方法,請繼續閱讀(併爲有類似問題的其他人提供幫助)。

找到任意兩個y值之間的任意兩個x值之間的最大差異;稱它們爲max(dx)和max(dy) - 它們分別是max(x)-min(x)和max(y)-min(y)。

取寬度/最大值(dx)和高度/最大值(dy)中較大者。這個數字提供你的規模;只需使用((x-min(x))/ scale)修改每個x值,並使用((y-min(y))/ scale)修改每個x值。

您現在應該具有最大的形狀,相對0,0。

注意:我有負座標,您必須在應用這些公式之前將它們調整到正座標範圍。