Witam.
Mam polecenie:
wyrzucenie spraw związanych z układem współrzędnych do osobnej klasy, której przekazujemy referencję do obiektu Graphics
No i jest problem... Mam kod klasy Funkcja kwadratowa i wykres...
public class FunkcjaKwadratowa {
private double a, b, c;
public FunkcjaKwadratowa(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public double delta() {
return b*b-4*a*c;
}
public double x1() {
if (delta()<0) return 0;
return ( -b+Math.sqrt(delta()) )/2/a;
}
public double x2() {
if (delta()<0) return 0;
return ( -b-Math.sqrt(delta()) )/2/a;
}
public double valueOf(double x) {
return a*x*x + b*x + c;
}
public String formula() {
return "f(x) = " + a + " x^2 + " + b + " x + " + c;
}
}
import java.awt.*;
public class Wykres extends java.applet.Applet {
float a,b,c;
FunkcjaKwadratowa f;
public void init() {
a = ((getParameter("a")!= null)?Float.parseFloat(getParameter("a")):1);
b = ((getParameter("b")!= null)?Float.parseFloat(getParameter("b")):1);
c = ((getParameter("c")!= null)?Float.parseFloat(getParameter("c")):1);
f = new FunkcjaKwadratowa(a,b,c);
}
public void paint(Graphics g) {
g.setColor(Color.YELLOW);
g.clearRect(0,0,getSize().width,getSize().height);
// rysowanie uk³adu wspó³rzêdnych
g.setColor(Color.BLACK);
g.drawLine(200,0,200,400);
g.drawLine(0,200,400,200);
for (int k=10;k<400;k+=10) {
g.drawLine(k,197,k,203);
g.drawLine(197,k,203,k);
}
g.drawString("1",208,215);
g.drawString("1",208,195);
// wywietlenie wzoru funkcji
g.drawString(f.formula(),100,430);
// rysowanie wykresu
g.setColor(Color.BLUE);
for (int k=0;k<400;k++) {
double x = 1.0*(k-200)/10;
double y = f.valueOf(x);
if ((y>-20)&&(y<20))
g.fillOval(k, (int)(200-y*10), 3, 3);
}
}
}
teraz mam z Wyktes.java wyrzucić do nowej klasy tą część kodu:
public void paint(Graphics g) {
g.setColor(Color.YELLOW);
g.clearRect(0,0,getSize().width,getSize().height);
// rysowanie uk³adu wspó³rzêdnych
g.setColor(Color.BLACK);
g.drawLine(200,0,200,400);
g.drawLine(0,200,400,200);
for (int k=10;k<400;k+=10) {
g.drawLine(k,197,k,203);
g.drawLine(197,k,203,k);
}
g.drawString("1",208,215);
g.drawString("1",208,195);
// wywietlenie wzoru funkcji
g.drawString(f.formula(),100,430);
// rysowanie wykresu
g.setColor(Color.BLUE);
for (int k=0;k<400;k++) {
double x = 1.0*(k-200)/10;
double y = f.valueOf(x);
if ((y>-20)&&(y<20))
g.fillOval(k, (int)(200-y*10), 3, 3);
}
}
pozostała reszta to parametry które musze przekazać do nowej klasy rysującej...
I tu moja proźba...
Mógł by ktoś pomóc, bo nie mam pojęcia jak to zrobić...
</b>