Java Programmierung(kniffelige Aufgabe)

  • Kann mir jemand folgenden Code erklären?
    Die stellen an denen ich Hilfe brauche sind markiert(### ... ###)!

    import java.awt.*;

    /**
    * ### Klassenbeschreibung einfügen ###
    */
    public class Igel
    extends Canvas {

    // Instanzvariablen:
    int xa, ya, phi, xe, ye, dx, dy;
    double b;

    /**
    * ### Methodenbeschreibung einfügen ###
    */
    public Igel() {
    xa = 300;
    ya = 300;
    phi = 0;
    b = 0;
    xe = 0;
    ye = 0;
    }


    /**
    * ### Methodenbeschreibung einfügen ###
    */
    public void vor(int d) {
    Graphics stift = getGraphics();
    dx = (int)(d*Math.sin(b));
    dy = (int)(d*Math.cos(b));
    xe = xa + dx;
    ye = ya - dy;
    stift.drawLine(xa,ya,xe,ye);
    xa = xe;
    ya = ye;
    }

    /**
    * ### Methodenbeschreibung einfügen ###
    */
    public void rechts(int winkel) {
    phi = phi + winkel;
    b = 2*Math.PI*phi/360;
    }
    }


     und der zweite Code lautet:

    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;

    /**
    * ### Klassenbeschreibung einfügen ###
    */
    public class BiBaum
    extends Applet
    implements ActionListener {

    Igel igel;
    Button knopf;

    /**
    * ### Methodenbeschreibung einfügen ###
    */
    public BiBaum() {
    igel = new Igel();
    igel.setSize(600,400);
    add(igel);
    knopf = new Button("Zeichnen");
    knopf.addActionListener(this);
    add(knopf);
    }

    public void actionPerformed(ActionEvent e) {
    zeichne(70);
    }

    /**
    * ### Methodenbeschreibung einfügen ###
    */
    public void zeichne(int laenge) {

    /*
    * Was bewirkt diese Bedingung?
    */
    if(laenge > 2) {
    igel.vor(laenge);
    igel.rechts(90);
    igel.vor(laenge);
    igel.rechts(-90);
    zeichne(laenge/2);
    igel.rechts(90);
    igel.vor(-2*laenge);
    igel.rechts(-90);
    zeichne(laenge/2);
    igel.rechts(90);
    igel.vor(laenge);
    igel.rechts(-90);
    igel.vor(-laenge);
    }
    }
    }

     und zu folgendem Code brauche ich das Ende

    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;

    /**
    * ### Klassenbeschreibung einfügen ###
    */
    public class Sierpinski
    extends Applet
    implements ActionListener {

    Igel igel;
    Button knopf;

    /**
    * ### Methodenbeschreibung einfügen ###
    * ### (wie bei BiBaum) ###
    */
    public Sierpinski() {
    igel = new Igel();
    igel.setSize(600,400);
    add(igel);
    knopf = new Button("Zeichnen");
    knopf.addActionListener(this);
    add(knopf);
    }

    public void actionPerformed(ActionEvent e) {
    zeichne(70);
    }

    /**
    * ### Methodenbeschreibung einfügen ###
    */
    public void zeichne(int l) {

    // Hier fehlt der entscheidende Teil.
    }
    }


     Wenn mir jemand helfen könnte auch wenn es nur zu einem der Probleme ist wäre ich sehr dankbar.

    MfG und vielen Dank im voraus

    P. Mainsen

  • 1. CODE-Tag benutzen, damit die Formatierung erhalten bleibt.

    2. Eine Erklärung posten, was der Code machen soll, was die Methoden machen, und welchen Teil du nicht verstehst.

    Editiere dazu dein Posting oder poste noch einmal.

    EDIT:

    So wie ich das verstehe wirst du kaum eine Erklärung abgeben, da du selber nicht mal weißt, was das Programm macht.

    Drum:

    Selbst verstehen. Stelle konkrete Fragen zu einzelnen Teilen, aber erwarte dir nicht, dass die Leute hier deine Arbeit machen, damit du keine Mühe mehr hast.

  • Achso. Der Code ist vorgegeben, und P.Mainsen soll die erklärenden Kommentare schreiben. Dann ist 2. von JohnFoo eigentlich schon die ganze Aufgabe.

    "Egbert B. Gebstadter is the Egbert B. Gebstadter of indirect self-reference." - Egbert B. Gebstadter

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!