2011-04-07 143 views
1

我想在我的圖中添加縮放功能。 對於爲例,如果我圖的是美星5000,I變焦圍繞中心有200米的距離,我的軸應該代表值2400至2600年,在被2500圖形和縮放功能

private class ZoomHandler implements MouseWheelListener { 

    public void mouseWheelMoved(MouseWheelEvent e) { 
     double distanceY = maxY; 

     double cursorY = maxY/2.0; 

     int rotation = e.getWheelRotation(); 
     if (rotation < 0) { 
      distanceY = 200/2; 
     } else { 
      distanceY = 200 * 2; 
     } 
     maxY = cursorY + distanceY; 

     repaint(); 
    } 
} 

有人能中心幫助數學運算? 謝謝。

圖爲得出這樣:

private void drawAxis(Graphics2D g2) { 
    FontMetrics metrics = g2.getFontMetrics(); 
    double axisH = yPositionToPixel(originY); 
    double axisV = xPositionToPixel(originX); 

    g2.drawLine(0 + V_BORDER, (int) axisH, getWidth(), (int) axisH); 

    g2.drawLine((int) axisV, (int) axisH, (int) axisV, getHeight() - H_BORDER); 
} 

protected double yPositionToPixel(double position) { 
    double height = (double) getHeight(); 

    return pixelOriginY + (position)/(maxY) * (height - (pixelOriginY + H_BORDER)); 
} 

protected double xPositionToPixel(double position) { 
    double width = getWidth(); 
     return (width) - pixelOriginX - (position - minX)/(maxX - minX) * (width - (pixelOriginX + V_BORDER)); 
} 

private void drawHorizontalLabels(Graphics2D g2) { 
    double axisV = xPositionToPixel(originX); 
    FontMetrics metrics = g2.getFontMetrics(); 
    for (double y = originY + majorY; y < maxY + majorY; y += majorY) { 
     int position = (int) yPositionToPixel(y); 
     if (rightToLeft) { 
      g2.drawString(formatter.format(y), (int) axisV + 5, position); 
    }} 

的構造是這樣的:

public Graph(double originX, double originY, double pixelOriginX, double pixelOriginY, 
     double minX, double maxX, 
     double minY, double maxY, 
     double majorX, double majorY, String labelXaxis, String labelYaxis) {} 

這也是我如何初始化它:

new GraphDisplay(0.0, 0.0, 40, 100, -0.1, 120, -0.1, 5000, 20, 1000); 

GraphDisplay延伸圖表。

+1

你是如何繪製圖形?這種決定一切。 – AaronM 2011-04-07 10:08:52

回答

1

JFreeChart有這個已經內置的。

+0

好的謝謝,但我不想使用JFreeChart,因爲我想自己做,我只是需要一些數學上的幫助,因爲它越來越混亂。 – wotan2009 2011-04-07 15:35:12