next up previous contents
Nächste Seite: Quadrate rekursiv ausgeben Aufwärts: Fraktale Vorherige Seite: Schneeflocken-Fraktal   Inhalt

Fibonacci-Zahlen zum Modulus 9 darstellen

Die Startzahl 1 wird durch den Aufruf von fibomod() in der paint()-Methode vorgegeben. Die zweite Zahl z2 wird durch den Benutzer angegeben. Bei der Rekursion wird zz aus der Summe der vorhergegangenen Zahlen zum Modulus 9 berechnet: zz = (z1 + z2) mod 9

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

public class Fibomod extends Frame {

    static int zahl2;
    static int winkel;
    static int ebenen;

    public void paint (Graphics g) {
        Turtle t = new Turtle(this, 100,100);
        fibomod(t,1,zahl2,winkel, ebenen);
    }

    public void fibomod(Turtle t, int z1, int z2, int winkel, int ebene) {
        if (ebene>0) {
            int zz = (z1 + z2) % 9;
            t.fd(zz*5);
            t.rt(winkel);
            fibomod(t, z2, zz, winkel, ebene-1);
        }
    }

    public static void main(String [] args) {
        if (args.length < 2) {
            System.out.println("Aufruf: % java Fibomod zahl2(7) winkel(72) ebenen(200)");
            System.exit(0);
        }
        zahl2 = Integer.parseInt(args[0]);
        winkel = Integer.parseInt(args[1]);
        ebenen = Integer.parseInt(args[2]);
        Fibomod fprog = new Fibomod();
        WindowListener wl = new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.out.println("... und aus ;-)");
                    System.exit(0);
                }
            };
        fprog.addWindowListener(wl);
        fprog.setTitle("Fibomod 9, Zahl2:  " + zahl2 + ", " + winkel + "° ");
        fprog.setLocation(100,100);
        fprog.setSize(300,300);
        fprog.show();
    }
}



Alfred Nussbaumer 2003-02-10