Department of Computer Science | Institute of Theoretical Computer Science | CADMO

Theory of Combinatorial Algorithms

Prof. Emo Welzl and Prof. Bernd Gärtner

// Informatik - Serie 11 - Aufgabe 127 // Autor: Rafael Benz // Prog: BenzRafael.cpp // Draw turtle graphics for the lindenmeyer system with production // F -> F+FF+F-[-F+F-FF]-FFF-F+FFF-F, initial word f and rotation // 5 iterations take about 10 seconds // angle 90 degrees. #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); // w_(i-1)^F ifm::right(90); // + f(i-1); // w_(i-1)^F f(i-1); // w_(i-1)^F ifm::right(90); // + f(i-1); // w_(i-1)^F ifm::left(90); // - ifm::save(); // [ ifm::left(90); // - f(i-1); // w_(i-1)^F ifm::right(90); // + f(i-1); // w_(i-1)^F ifm::left(90); // - f(i-1); // w_(i-1)^F f(i-1); // w_(i-1)^F ifm::restore(); // ] ifm::left(90); // - f(i-1); // w_(i-1)^F f(i-1); // w_(i-1)^F f(i-1); // w_(i-1)^F ifm::left(90); // - f(i-1); // w_(i-1)^F ifm::right(90); // + f(i-1); // w_(i-1)^F f(i-1); // w_(i-1)^F f(i-1); // w_(i-1)^F ifm::left(90); // - f(i-1); // w_(i-1)^F } } int main() { std::cout <<"Number of iterations =? "; unsigned int n; std::cin >> n; // draw w_n = w_n^F ifm::left(90); //look up f(n); // w_n^F return 0; }