próbuje zrobic program który narysuje wykres funkcji liniowej gdy np. wpisze w konsoli y=x+2 chciał bym żeby wyskoczyło okno z narysowanym wykresem gdy mam wpisane wszystko tak i nie chcę pobierać funkcji z konsoli wykres się rysuje
import java.awt.*;
import java.applet.*;
public class Figury extends Applet {
int width, height;
public double fodx (double x) {
double y;
//y = -0.1*(x+1)*(2-x)*(x-5);
//y = 1/5*x*(x+3)*(2-x)*(x+1);
// y=(x+1)/(3*x+6);
y=x+2;
// y = (3*x)/((x*x)-x+1);
//y = Math.sin(x*Math.PI+100);
//y= (x*x)-(3*x)+5;
return y;
}
public void init () {
width = 800;
height = 600;
setSize(width, height);
}
public void paint(Graphics a) {
a.setColor(new Color(0,0,0));
a.drawLine (0, height / 2, width, height / 2);
a.drawLine (width/2, 0, width/2, height);
int skala_ox , zakres;
double y1 , y2 ,x1 ,x2;
skala_ox = height/((height/2)-(int)fodx(50));
zakres = 10;
skala_ox =15;
x1=(zakres*-1) * skala_ox + (width /2 );
y1=(fodx(zakres*-1)) * skala_ox + (height / 2);
for(double i=zakres*(-1); i < zakres;i=i+0.1){
y2 = fodx(i+1)* skala_ox + (height / 2);
x2 = i * skala_ox + (width /2 );
a.setColor(new Color(255,0,0));
a.drawLine( (int) x1 , (int) y1 , (int) x2 ,(int) y2);
x1= x2;
y1 = y2;
}
}
}
ale próbuję zrobić tak żeby funkcja była podawana przez użytkownika i nie potrafię proszę o pomoc na razie to co próbuje zrobić wygląda tak w lini Wykres w = new Wykres(dzialanie); podkreślone jest dzialanie i pisze (Cannot make a static reference to the non-static field dzialanie) proszę o pomoc
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.util.Scanner;
public class Wykres extends Applet {
int width, height;
String dzialanie;
public double fodx (double x) {
double y;
try
{
y=Double.parseDouble(dzialanie);
System.out.println("funkcja to1 :"+y);
}
catch(NumberFormatException w)
{
y=x ;
System.out.println("Błąd"+w);// wartość domyślna
}
System.out.println("funkcja to :"+y);
return y;
}
public void init () {
width = 800;
height = 600;
setSize(width, height);
}
public void paint(Graphics a) {
a.setColor(new Color(0,0,0));
a.drawLine (0, height / 2, width, height / 2);
a.drawLine (width/2, 0, width/2, height);
int skala_ox , zakres;
double y1 , y2 ,x1 ,x2;
skala_ox = height/((height/2)-(int)fodx(50));
zakres = 10;
skala_ox =15;
x1=(zakres*-1) * skala_ox + (width /2 );
y1=(fodx(zakres*-1)) * skala_ox + (height / 2);
for(double i=zakres*(-1); i < zakres;i=i+0.1){
//y1 = (int) fodx(i);
y2 = fodx(i+1)* skala_ox + (height / 2);
x2 = i * skala_ox + (width /2 );
a.setColor(new Color(255,0,0));
a.drawLine( (int) x1 , (int) y1 , (int) x2 ,(int) y2);
x1= x2;
y1 = y2;
}
}
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.print ("Podaj równainie: " );
String wyrazenie = sc.nextLine();
Wykres w = new Wykres(dzialanie);
}
}
dodanie znaczników <code class="java"> oraz tagów - fp