|
- Applets : Fraktale : Koch-Kurve -
Die fraktale Koch-Kurve als Java-Applet.
Mehr Zacken mit linkem Mausklick - Weniger mit rechtem Mausklick.
Die Koch-Kurve (auch Schneeflockenkurve oder kochsche Insel). Nach Helge von Koch, schwed. Mathematiker, 1870-1924
KochKurve.java
import java.applet.*;
import java.awt.*;
public class KochKurve extends Applet {
int level = 3;
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>1) level -= 1;
repaint();
return true;
}
public void paint(Graphics g) {
drawCurve(g,10,130,0,400,level); // Startwerte
}
private void drawCurve(Graphics g, double x1, double y1,
double angle1, double sideLength, int level) {
// (x1,y1), (x2,y2), (x3,y3), (x4,y4) = Startpunkte für die Teilstrecken
// sideLength = Länge einer Teilstrecke
// angle = Winkel zwischen den Teilstrecken
// Jede Teilstrecke wird eindeutig durch einen Startpunkt,
// einen Winkel und eine Länge definiert
// Anzahl der Teilstrecken = 4^(level-1), level 1 = gerade Linie
double x2, y2, angle2, x3, y3, angle3, x4, y4;
if (level>1) {
// Übergebene Teilstrecke in vier neue Teilstrecken zerlegen
sideLength /= 3;
level -= 1;
// erste Teilstrecke
drawCurve(g, x1,y1, angle1, sideLength, level);
// zweite Teilstrecke
x2 = x1+sideLength*Math.cos(angle1);
y2 = y1+sideLength*Math.sin(angle1);
angle2 = angle1-Math.PI/3;
drawCurve(g, x2,y2, angle2, sideLength, level);
// dritte Teilstrecke
x3 = x2+sideLength*Math.cos(angle2);
y3 = y2+sideLength*Math.sin(angle2);
angle3 = angle1+Math.PI/3;
drawCurve(g, x3,y3, angle3, sideLength, level);
// vierte Teilstrecke
x4 = x3+sideLength*Math.cos(angle3);
y4 = y3+sideLength*Math.sin(angle3);
// angle4 = angle1
drawCurve(g, x4,y4, angle1, sideLength, level);
}
else {
// Teilstrecke zeichnen
g.drawLine((int)x1,(int)y1,
(int)(x1+sideLength*Math.cos(angle1)),(int)(y1+sideLength*Math.sin(angle1)));
}
}
}
Eigentlich wollte Helge von Koch 1904 nur eine Kurve beschreiben, die, obwohl sie fast überall stetig ist, an keiner Stelle eine Tangente besitzt, und damit auch nicht differenzierbar ist. Erst 1975 führte Mandelbrot für ein solches Gebilde den Begriff 'Fraktal' ein. Zu Kochs Zeiten sprach man bei Kurven und Funktionen mit den genannten Eigenschaften noch von mathematischen 'Monstern' oder 'Monsterkurven'.

(Helge von Koch)
Download Koch_Kurve.zip (Applet und Code ca. 2 kb)
© 2001-2004 Albert Kluge - Alle Rechte vorbehalten
Impressum | Datenschutz | Nutzung | eMail
|