Hallo,
wir haben als Aufgabe von unserem Prof bekommen einen Sierpinski Sechseck zu programmieren.
Habe das fertige Programm von einem Kollegen, nur leider verstehe ich nicht wie er auf die Werte gekommen ist.
Hier zunächst mal etwas zum Sierpinski Dreieck: Sierpinski-Dreieck ? Wikipedia
In der Vorlesung hatte der Prof uns sein Sierpinski Dreieck Code gezeigt, unsere Aufgabe war es bloß dieses Programm auf ein Sechseck zu erweitern.
Hier das Dreieck:
Nun das Sechseck:
Mir ist klar das diese Werte berechnet wurden, aber wie genau? Und wieso teile ich es / 3? Beim ersten Programm war es noch / 2 ? Das verstehe ich auch nicht..
Würde mich sehr über eine schnelle Hilfe freuen
Mit freundlichen Grüßen
wir haben als Aufgabe von unserem Prof bekommen einen Sierpinski Sechseck zu programmieren.
Habe das fertige Programm von einem Kollegen, nur leider verstehe ich nicht wie er auf die Werte gekommen ist.
Hier zunächst mal etwas zum Sierpinski Dreieck: Sierpinski-Dreieck ? Wikipedia
In der Vorlesung hatte der Prof uns sein Sierpinski Dreieck Code gezeigt, unsere Aufgabe war es bloß dieses Programm auf ein Sechseck zu erweitern.
Hier das Dreieck:
Java:
public class Sierpinski {
public static void main(String[] args) {
int T =Integer.parseInt(args[0]);
double[] cx = {0.000, 1.000, 0.500}; // <<< wie er auf diese Werte kommt verstehe ich nicht
double[] cy = {0.000, 0.000, 0.866}; // <<< wie er auf diese Werte kommt verstehe ich nicht
double x = 0.0, y = 0.0;
for (int t = 0; t < T; t++) {
int e = StdRandom.uniform(3);
x = (x + cx[e]) / 2.0;
y = (y + cy[e]) / 2.0;
StdDraw.point(x,y);
}
}
}
Nun das Sechseck:
Java:
public class SierpinskiSechseck {
public static void main (String[] args) {
int T =Integer.parseInt (args[0]);
// wieso diese Werte?
double[] cx = {2.0, 1.5, 0.5, 0.0, 0.5, 1.5};
double[] cy = {1.0,1.866,1.866,1.0,0.134,0.134};
double x = 0.0, y = 0.0;
for (int t = 0; t < T; t++)
{
int e = StdRandom.uniform(6); // Zufaellige Zahl bzw. Position aus Array lesen
x = (x + cx[e]) / 3.0; // Warum wird hier durch 3 geteilt?
y = (y + cy[e]) / 3.0;
StdDraw.point(x,y);
}
}
}
Mir ist klar das diese Werte berechnet wurden, aber wie genau? Und wieso teile ich es / 3? Beim ersten Programm war es noch / 2 ? Das verstehe ich auch nicht..
Würde mich sehr über eine schnelle Hilfe freuen
Mit freundlichen Grüßen