Il programma è il seguente, preso dal libro Fractals fot the classroom - Part one: Introduction to fractals and chaos [Peitgen, Jürgens, Saupe; Springer-Verlag, 1992; p. 207]. Il suo scopo è quello di disegnare la curva di Koch.
Però malgrado le vostre spiegazioni non riesco a capire come funziona esattamente (e quindi come tradurlo in C++ dove i GOTO, fortunatamente, non esistono!codice:DIM xleft(10), xright(10), yleft(10), yright(10) INPUT "Peak offset (0.29):", r level = 5 xleft(10) = 30 xright(10) = 30 + 300 yleft(10) = 190 yright(10) = 190 GOSUB 100 END REM DRAW AT LOWEST LEVEL OF RECURSION 100 IF level > 1 GOTO 200 LINE (xleft(1), yleft(1)) - (xright(1), yright(1)) GOTO 300 REM BRANCH INTO LOWER LEVELS 200 level = level - 1 REM LEFT BRANCH xleft (level) = xleft (level + 1) yleft (level) = yleft (level + 1) xright (level) = 0.333 * xright (level + 1) + 0.667 * xleft (level + 1) yright (level) = 0.333 * yright (level + 1) + 0.667 * yleft (level + 1) REM MIDDLE LEFT BRANCH xleft (level) = xright (level) yleft (level) = yright (level + 1) xright (level) = 0.5 * xright (level + 1) + 0.5 * xleft (level + 1) - offset * (yleft (level + 1) - yright (level + 1)) yright (level) = 0.5 * yright (level + 1) + 0.5 * yleft (level + 1) - offset * (xleft (level + 1) - xright (level + 1)) REM MIDDLE RIGHT BRANCH xleft (level) = xright (level) yleft (level) = yright (level) xright (level) = 0.667 * xright (level + 1) + 0.33 * xleft (level + 1) yright (level) = 0.667 * yright (level + 1) + 0.33 * yleft (level + 1) REM RIGHT BRANCH xleft (level) = xright (level) yleft (level) = yright (level) xright (level) = xright (level + 1) yright (level) = yright (level + 1) level = level + 1 300 RETURN)

)
Rispondi quotando