// Informatik - Serie 11 - Skript-Aufgabe 127
// Program: lindenmayer.cpp
// Autor: S. von der Thannen
#include
#include
// POST: the word w_i^F is drawn
void f (const unsigned int i) {
if (i == 0)
ifm::forward(); // F
else {
f(i-1);
ifm::right(3);
ifm::save(); //save current position
f(i-1);
ifm::left(3);
f(i-1);
ifm::restore(); // jump to last saved position
}
}
int main () {
std::cout << "Number of iterations (5 or 6 are recommended): ";
unsigned int n;
std::cin >> n;
// draw w_n = w_n^F
ifm::left(90);
ifm::forward(); //"trunk"
for (unsigned int i=2; i>0; --i){
ifm::save();
f(n);
ifm::restore();
ifm::save();
ifm::left(8);
f(n);
ifm::restore();
ifm::right(8);
ifm::save();
}
return 0;
}