Stavo scrivendo un piccolo programmino per disegnare il grafico di una funzione in java, ho sviluppato il programma che disegna senza problemi le funzioni base tipo seno,coseno, adesso vorrei disegnare il grafico di questa funzione: y=somma(a*x^n) con 0..n n (praticamente una sommatoria). Come la tradurreste in java? vi metto il codice che ho sviluppato in modo da farvi capire meglio 
codice:
import java.awt.*;
import javax.swing.*;
public class FunctionPanel extends JPanel {
int xMin=-7, xMax=7, yMin=-1, yMax=1;
//gli intervalli in cui vogliamo graficare
int larghezza=500, altezza=400;
//grandezza del JFrame
float fattoreScalaX, fattoreScalaY;
public void paintComponent(Graphics g){
super.paintComponent(g); //va messo sempre
setBackground(Color.white);
fattoreScalaX=larghezza/((float)xMax-xMin);
fattoreScalaY=altezza/((float)yMax-yMin);
/*dobbiamo fare le proporzioni tra l'intervallo
* di valori della finestra (500*400) e l'intervallo
* da graficare*/
//incorniciamo il grafico in nero
g.setColor(Color.black);
g.drawRect(0, 0, larghezza-1, altezza-1);
//disegna assi cartesiani
g.setColor(Color.red);
g.drawLine(0, altezza/2, larghezza-1, altezza/2);
g.drawLine(larghezza/2, 0, larghezza/2, altezza-1);
//scrittura valori estremi degli assi
g.drawString(""+xMin, 5, altezza/2-5);
g.drawString(""+xMax, larghezza-10, altezza/2+5);
g.drawString(""+yMax, larghezza/2+5, 15);
g.drawString(""+yMin, larghezza/2+5, altezza-5);
//disegna il grafico della funzione in blu
g.setColor(Color.blue);
setPixel(g,xMin,f(xMin)); //punto iniziale
for(int i = 1;i<larghezza;i++){
//per ognuno dei pixel della finestra
float x = xMin+((float)i)/fattoreScalaX;
setPixel(g,x,f(x));
}
}
//definizione della funzione statica da graficare
static float f(float x){
return (float)Math.sin(x);
//sin(x) è la funzione che decidiamo di graficare
}
void setPixel(Graphics g, float x, float y){
if(x<xMin || x>xMax || y<yMin || y>yMax)
return;
int ix = Math.round((x-xMin)*fattoreScalaX);
int iy = altezza-Math.round((y-yMin)*fattoreScalaY);
g.drawLine(ix, iy, ix, iy);
//disegna in effetti un singolo punto
}
}