] > Assignment 3: ASCII Art (Due: Th, April 24)

Assignment 3: ASCII Art (Due: Th, April 24)

      .........  
    ...       ...  
   ..           ..  
  ..     \       ..  
 ..     / \       ..  
 .     /   \       ..  
..     /    \       .  
.     /      \      ..  
.   #/########\     ..  
.  //         #\     .  
. / #         # \    .  
.   #         #      .  
.   #         #      .  
.   #         #     ..  
..  #         #     .  
..  #         #     .  
 .. #         #    ..  
  . #         #   ..  
  ..###########  ..  
    ..         ...  
     ....    ....  
       ...+...  
          +  
         +++  
         ++ +  
        + +  +  
       +  +  +  
          +  
          +  
         + +  
         +  +  
        +    +  
       +     +  
          bye

Provide the missing definitions for the declared procedures of the given program. The program should produce a picture similar to the displayed figure.

Notes.

Suggestions. Build your program incrementally. For instance, as described below.

Galleries. afn.org, asciiartfarts.com, convertor

[ctime] [cmath]

<..turtle.cpp..>
 #include <iostream>
 #include <time.h>
 #include <math.h>
 using namespace std;
 
   double x = 0, y = 0;
   double direction = 0;
   double scale = 1;
   char color = ’#’;
   int pen = 0;
 
   void clear();
   void penUp();
   void penDown();
   void setColor(char ch);
   void setScale(double factor);
   void move( double distance );
   void rotate( double degrees );
   void wait ( double seconds );
 
   void drawHouse();
   void drawPerson();
 
 int main()
 {
    drawHouse();
    drawPerson();
    cout << "bye" << endl;
    return 0;
 }
 
 /********************** void drawHouse() ************/
 void drawRoof();
 void drawHouse(){
    clear();
    penUp();
    rotate(45);
    move(30);
    penDown();
    rotate(-45);
    for(int i=0; i<4; i++){
      move(10);
      rotate(90);
    }
    drawRoof();
 }
 void drawRoof(){
    rotate(-45);
    setColor(’/’);
    penUp();
    move(-3);
    penDown();
    move(3 + sqrt(50));
    rotate(90);
    setColor(’\\’);
    move(3 + sqrt(50));
 }
 /********************** void drawPerson() ************/
 void drawPerson(){
    //circle
    rotate(135);
    penUp();
    move(6.1);
    rotate(-90);
    setColor(’.’);
    setScale(1.05);
    for(int i=0; i<360; i+=3){
       penUp();
          move(10); rotate(90);
       penDown();
          move(2);
       penUp();
          move(-2); rotate(-90); move(-10);
       rotate(3);
       wait(0.1);
    }
 
    penUp();
    move(10);
    penDown();
    setScale(0.15);
    setColor( ’+’ );
    move(10);
    rotate(-45); move(30); penUp(); move(-30);
    rotate(90); move(30); penDown(); move(-30);
    rotate(-45);
    move(40);
    rotate(-45); move(30); penUp(); move(-30);
    rotate(90); move(30); penDown(); move(-30);
 
    rotate(-45);
    penUp();
    move(30);
 }
 /********************** void clear() *****************/
 void clear(){
    cout << "\x1b[2J";
    cout << "\x1b[0;0H";
 }
 /********************** void wait(...) ***************/
 void wait( double seconds ){
   clock_t endwait;
   endwait = clock() + (int) (seconds * CLOCKS_PER_SEC);
   while (clock() < endwait) {}
 }
 /********************** void moveTo(...) *************/
 void moveTo( double x, double y ){
    cout << "\x1b["
         << (int) floor(y+0.5)
         << ";"
         << (int) floor(x + 0.5)
         << "H";
 }
-_-_-