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 ;)