Parabel zeichnen AWT

Hallo,

soll für EDV eine Parabel zeichnen die einen bestimmten Rand hat, einen Skalierungsfaktor und Rand. Variablennamen wie Margin, xwork, xskal… sind gegeben also das Programm muss irgendwie so aufgebaut sein. Mein Problem ist aber, dass keine Parabel gezeichnet wird.
Das ganze ist kompilierbar also der Compiler zeigt keine Fehler und Warnungen.

Mein Code:

/**
  *
  * Normalparabel
  *
  * @version 1.0 vom 12.04.2013
  * @author
  */
  
  import java.awt.*;
  import java.awt.event.*;

public class Parabelzeichen extends Frame {



  public static void main(String[] args) {
    Parabelzeichen wnd = new Parabelzeichen();
  }

  public Parabelzeichen() {
    super("Parabel");
    setBackground(Color.lightGray);
    setSize(950, 950);
    setVisible(true);
  }
  
  public void paint(Graphics g) {
    // x- Werte
    int xwidth = 950;        // Fenstergroesse
    int xbis = 2;            // Ende der Parabel im Dezimalbereich
    int xvon = 0;            // Anfang der Parabel im Dezimalbereich
    int xwork;               // Pixelanzahl der Arbeitsflaeche
    double xskal;            // Skalierungsfaktor
    double x;
    double x2;
    // y- Werte
    int yheight = 950;
    int ybis = 2;
    int yvon = 0;
    int ywork;
    double yskal;
    double y;
    double y2;
    // Margins
    int lmargin = 50;        // linker Rand
    int rmargin = 50;        // rechter Rand
    int tmargin = 50;        // oberer Rand
    int bmargin = 50;        // unterer Rand
    
    // Berechnung von den nich angegebenen Variablen
    xwork = xwidth - lmargin - rmargin;                   // Die Pixel mit denen gearbeitet werden kann
    xskal = xwork / (xbis - xvon);                        // Der Skalierungsfaktor
    ywork = yheight - tmargin - bmargin;
    yskal = ywork / (ybis - yvon);
    
    // Zeichnung des Koordinatensystems
    g.drawLine(lmargin, tmargin, lmargin, yheight - bmargin);
    g.drawLine(lmargin, ywork + bmargin, xwidth - rmargin, ywork + bmargin);
    
    // Zeichnung der Parabel
    for (int i = 0; i < xwork; i = i) {
      x = i * xskal + lmargin;
      y = tmargin + x * x * yskal;
      int px = (int) x;
      int py = (int) y;
      i++;
      x2 = i * xskal + lmargin;
      y2 = tmargin + x2 * x2 * yskal;
      int p2x = (int) x;
      int p2y = (int) y;
      g.drawLine(px, py, p2x, p2y);
    }
  }
}```

Ich bitte um einen Denkanstoss wo der Fehler liegen könnte.
Wäre dankbar für Hilfe ;)

Beim Drüberschauen fällt schonmal
for (int i = 0; i < xwork; i = i) {
ins Auge, das letzte sollte wohl i++ statt i=i sein :wink:

Ansonsten im Zweifelsfall mal

System.out.println("Male von "+px+" "+py+" nach "+p2x+" "+p2y);
g.drawLine(px, py, p2x, p2y);

einbauen, und dann versuchen, den Fehler zurückzuverfolgen.

Mach doch mal ein
System.out.println(px + ", " + py + ", " + p2x + ", " + p2y);
in Deine for-Schleife, dann siehst Du, dass weit außerhalb des Fensters gezeichnet wird!

Gruß,
André