Hi zusanmen,
ich versuche den Peano Algorithmus in C zu verstehen:
https://rosettacode.org/wiki/Peano_curve
Die Funktion Peano() ruft sich selbst auf, hat aber mehrere Aufrufe von
sich selbst im Funktions-Rumpf.
Für mein Verständnis wird immer nur die erste Peano Funktion ausgeführt,
kann aber nicht die ganze Wahrheit sein ;)
Der erste Aufruf sieht so aus:
1
Peano(0,0,1000,0,0);
Kann mir jemand auf die Sprünge helfen, wie der Algorithmus startet?
Hier noch die Peano Funktion:
Brränko schrieb:> void Peano(int x, int y, int lg, int i1, int i2) {> if (lg == 1) {
Hier würde ich lg <= 1 schreiben. Sicherheitshalber...
> lineto(3*x,3*y);> return;> }>> lg = lg/3;
Vermutlich muss der erste Aufruf lg eine Potenz von 3 sein, sonst endet
die Rekursion nicht weil man bei lg == 0 landen kann.
> Peano(x+(2*i1*lg), y+(2*i1*lg), lg, i1, i2);
Wenn die Rekursion des ersten Aufrufs endet, geht es hier weiter:
> Peano(x+((i1-i2+1)*lg), y+((i1+i2)*lg), lg, i1, 1-i2);> Peano(x+lg, y+lg, lg, i1, 1-i2);