Aż boje się to tu zamieszczać bo wiem że bardzo prawdopodobne jest że wyląduje to w koszu, lub ktoś napisze ze szukaj w google.
Ale nie mogę znaleźć tego w google jest masa powiecmy kawałków programów lub postów na różnych forum że ktoś też szuka pomocy na ten tema.
Wiec zaryzykuje i opisze problem tutaj, a jest to dla mnie bardzo ważne bo jest częścią większego projektu który realizuje i nie mogę kontynuować bez tej części programu.
A rzecz rozchodzi się o wykres funkcji.
Ja zrobiłem cos takiego ale to ni jak ma się do prawdziwego wykresu.
Nie wiem jak rozwiązać problem by współrzędne (0,0) znajdowały się na środku okna. I jak w ogóle sprawić by to działało.
To co mam : bardzo proszę o wyrozumiałość to forum mi pomogło wiele razy i wiem że są tu ludzie dla których to drobnostka.
package paczka0038;
import java.util.*;
import java.util.List;
import java.awt.*;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import javax.swing.*;
public class MojWykres1
{
public static void main(String[] args)
{
RamkaRysunku ramka = new RamkaRysunku();
ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ramka.show();
}
}
class RamkaRysunku extends JFrame
{
public static final int szerokosc = 500;
public static final int wysokosc = 500;
public RamkaRysunku()
{
setTitle("Wykres");
setSize(szerokosc,wysokosc);
setLocation(250,150);
PanelRysunku panel = new PanelRysunku();
Container powZawartosc = getContentPane();
powZawartosc.add(panel);
}
}
//Panel wyswietla prostokaty i elpisy
class PanelRysunku extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
{
//rysuje przekątną
//g2.draw(new Line2D.Double(225,0,225,450));
//g2.draw(new Line2D.Double(226,1,226,451));
//g2.draw(new Line2D.Double(0,225,450,225));
//g2.draw(new Line2D.Double(1,226,451,226));
}
int a = 2;
int b = 34;
int c = 4;
int x;
int y;
int yy;
int xx;
int dwar= 0;
int x_temp = 0;
int y_temp = 0;
for(int t=0;t<225;t++)
{
x=t;
y=2*x; // tu ma byc podstawiana funkcja
if(dwar ==0)
{
x_temp = x;
y_temp = y;
}
if (dwar == 1)
{
rysujlinie(x_temp,y_temp,x,y,g);
dwar=0;
}
dwar++;
}
Rectangle2D pros = new Rectangle2D.Double(0,0,450,450);
g2.draw(pros);
}
public void rysujlinie(int la,int lb, int lc, int ld,Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
//x1,y1,x2,y2
g2.draw(new Line2D.Double(la,lb,lc,ld));
}
}