// Recursive fractal "tree" structure void tree(Turtle& turtle, int level, double size, double angle, double scale) { if (level == 0) { turtle.forward(size); turtle.backward(size); } else { turtle.forward(size); turtle.left(angle); tree(turtle, level - 1, size * scale, angle, scale); turtle.right(angle); turtle.right(angle); tree(turtle, level - 1, size * scale, angle, scale); turtle.left(angle); turtle.backward(size); } }
int ccc_win_main() { Turtle t; bool running = true; while (running == true) { double sides = -1; while (sides < 1) { sides = t.getInt("Enter number of sides:"); } double length = t.getDouble("Enter length of sides:"); if (sides > 1) { int degrees = DEGREES_IN_CIRCLE / sides; t.setHeading(LEFT); /* Apothem is the distance of the normal of any side of the polygon to the centerpoint of the polygon. The following code will center the shape in the window. */ double apothem = length / (2 * tan(PI / sides)); t.moveTo(length / 2, -apothem); int i = 0; while (i < sides) { t.forward(length); t.right(degrees); i++; } } if (sides == 1) { t.setHeading(0); // Creates the upper case letter M. t.moveTo(NTHREE,NNINE); t.right(TEN); t.forward(FORWARD_INC); t.right(G_TURN2); t.forward(FORWARD_INC); t.left(G_TURN2); t.forward(FORWARD_INC); t.right(G_TURN2); t.forward(FORWARD_INC); // Creates the upper case letter G. t.moveTo(SEVEN_POINT_FIVE, N_ONE_POINT_FIVE); t.left(G_TURN); t.forward(2); t.backward(2); t.right(ONE_THIRTY); t.forward(2); t.left(G_TURN); t.forward(2); t.left(G_TURN); t.forward(2); t.left(G_TURN); t.forward(2); t.left(G_TURN); t.forward(2); t.left(G_TURN); t.forward(2); t.left(G_TURN); t.forward(2); t.left(SMALL_TURN); t.forward(1); t.left(SMALL_TURN); t.forward(1); t.left(SMALL_TURN); t.forward(1); t.left(SMALL_TURN); t.forward(1); t.backward(2); // Creates the upper case letter J. t.setHeading(RIGHT_TURN); t.moveTo(NSEVEN, FIVE); t.forward(2); t.right(STRAIGHT); t.forward(1); t.left(RIGHT_TURN); t.forward(2); t.right(RIGHT_TURN); t.forward(1); // Creates the upper case letter W. t.moveTo(-FOUR, FIVE); t.right(TWO_THIRTY); t.forward(W_INC); t.left(RIGHT_TURN); t.forward(2); t.right(RIGHT_TURN); t.forward(2); t.left(RIGHT_TURN); t.forward(W_INC); // Creates the upper case letter C. t.moveTo(FOUR, FIVE); t.right(C_TURN); t.forward(2); t.right(STRAIGHT); t.forward(2); t.left(RIGHT_TURN); t.forward(2); t.left(RIGHT_TURN); t.forward(2); } string repeat = t.getString("Do you wish to continue (y/n)? "); if (repeat != "y") running = false; else t.clear(); } cout << "Exiting Program.\n"; exit(0); return 0; }