Java & JavaScript


Home
Applets
   3D:
 · Würfel
 · Würfel 2
 · Würfel 3
 · Tetraeder
 · Tetraeder 2
 · Dodekaeder
 · Ikosaeder
 · Fußball
 · Kugel
 · Kugel 2
   Fraktale:
 · Apfelmännchen
 · Apfelmännchen 2
 · Apfelmännchen 3
 · Apfelmännchen MA
 · Apfelmännchen Zoom
 · Apfelmännchen Zoom 2
 · Juliamenge
 · Juliamenge MA
 · Julia-Generator
 · Koch-Kurve
 · Koch-Kurve 2
 · Hilbert-Kurve
 · Sierpinski-Dreieck
 · Sierpinski-Dreieck 2
 · Sierpinski-Dreieck 3
 · Sierpinski-Teppich
 · Pythagoras-Baum
 · Lindenmayer-System
 · Lindenmayer-System 2
   Mathematik:
 · Funktionsplotter
 · Eratosthenes-Sieb
 · Miller-Rabin-Test
   Verschiedenes:
 · Morsezeichen-Ticker
 · Analoguhr
Scripts
Gäste
Kontakt



Zeitler/Dusan: Fraktale Geometrie. Eine Einführung
- Anzeige -


- Applets : Fraktale : Sierpinski-Dreieck -


Das fraktale Sierpinski-Dreieck als Java-Applet.

Das Sierpinski-Dreieck lässt sich auf vielfältige Art und Weise konstruieren. Eine der bekanntesten Methoden ist wohl, in einem vorgegebenen gleichseitigen Dreieck, einfach die Seitenmittelpunkte zu verbinden und dieses Verfahren, in den äußeren drei, der so entstehenden vier neuen Dreiecke fortzusetzen.
(Nach Waclaw Sierpinski, poln. Mathematiker, 1882-1969)

Mit linken und rechten Mausklicks auf das Applet, können sie dieses Vorgehen nachvollziehen.

[Das fraktale Sierpinski-Dreieck als Java-Applet mit Quellcode zum Download. Das Sierpinski-Dreieck lässt sich allerdings nur mit aktiviertem Java betrachten !]


Sierpinski.java

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

public class Sierpinski extends Applet {

    Graphics g;
    Point a1,b1,c1, a2,b2,c2, a3,b3,c3;

    int level = 0;

    public void init() {
        setBackground(new Color(255,255,255));
    }

    public boolean mouseDown(Event ev, int x, int y) {
        if (!ev.metaDown()) level += 1;
        else if (level>0) level -= 1;
        repaint();
        return true;
    }


    public void paint(Graphics g) {

        // Start-Dreieck
        int xCoords[] = {10, 390, 200};
        int yCoords[] = {390, 390, 10};
        g.drawPolygon(xCoords, yCoords, 3);

        drawTriangle(g, new Point(10,390),new Point(390,390),new Point(200,10), level);
    }


    public void drawTriangle(Graphics g, Point a, Point b, Point c, int level) {

        if (level==0) return;

        level -= 1;

        // In das übergebene Dreieck, wird ein auf dem Kopf stehendes Dreieck eingefügt
        int xCoords[] = {c.x, (c.x+b.x)/2, (a.x+c.x)/2};
        int yCoords[] = {b.y, (c.y+a.y)/2, (c.y+a.y)/2};

        g.drawPolygon(xCoords, yCoords, 3);

        // 3 neue Dreiecke bestimmen
        a1 = a;
        b1 = new Point(c.x, b.y);
        c1 = new Point((a.x+c.x)/2, (c.y+a.y)/2);
        drawTriangle(g, a1, b1, c1, level);

        a2 = new Point(c.x, b.y);
        b2 = b;
        c2 = new Point((c.x+b.x)/2, (c.y+a.y)/2);
        drawTriangle(g, a2, b2, c2, level);

        a3 = new Point((a.x+c.x)/2, (c.y+a.y)/2);
        b3 = new Point((c.x+b.x)/2, (c.y+a.y)/2);
        c3 = c;
        drawTriangle(g, a3, b3, c3, level);
    }
}


Waclaw Sierpinski

(Waclaw Sierpinski)


Download  Sierpinski_Dreieck.zip (Applet und Code ca. 2 kb)




© 2001-2004 Albert Kluge - Alle Rechte vorbehalten
Impressum | Datenschutz | Nutzung | eMail