Nel mio programma che dovrebbe disegnare i grafici delle funzioni ho implementato in una classe rappresentante un JPanel il seguente metodo:
codice:
private void disegnaAssi(Graphics g){
Graphics2D g2d=(Graphics2D)g;
g.setFont(new Font("Comic Sans MS",Font.PLAIN,8));
if(cèfunzione&&punti[0]==0&&punti[punti.length/2]==0&&punti[punti.length-1]==0){
g.setColor(Color.RED);
g.drawLine(0,250,920,250);
//g.setColor(Color.WHITE);
}
for(int i=0;i<9200;i+=92){
g.setColor(Color.LIGHT_GRAY.darker().darker().darker().darker().darker());
g2d.draw(new Line2D.Double(i/10.0,0,i/10.0,500));
}
for(int i=0;i<920;i+=46){ //disegna i numeri sull'asse orizzontale!
g.setColor(Color.WHITE);//
g.drawString(((((10*i)/46)-100)/2)*zoom+"",i,240);
}
for(int i=0;i<500;i+=10){
g.setColor(Color.LIGHT_GRAY.darker().darker().darker().darker().darker());
g.drawLine(0,i,900,i);
}
for(int i=0;i<500;i+=50){ //disegna i numeri sull'asse vericale!
g.setColor(Color.WHITE);//
g.drawString(0-((((10*i)/50)-50)/2)*zoom+"",470,i);
}
g.setColor(Color.WHITE);
g.drawLine(460,0,460,500); //disegna l'asse verticale
g.drawLine(0,250,920,250); //disegna l'asse orizzontale!
}
dove ciò che disegnerà in rosso rappresenta una successione di segmenti che formano il grafico della funzione,le restanti linee riguarano il disegno degli assi,della quadratura degli assi e dei numerini su di essi.
Tale metodo è utilizzato all'interno del paintComponent
Inoltre preciso che IL JPanel è impostato a sfondo nero.
Vorrei sapere perchè le linee grigie(rappresentanti la quadratura) si sovrappongono al grafico rosso?anche se facessi disegnare prima la quadratura e poi il grafico quelle grigie si sovrappongono sempre e comunque.Perchè avviene questo?Come potrei risolvere?
PS.per i numerini nei "for" non vi scervellate riguardano le dimensioni del pannello.