void drawArc(Point2 centre, float radius, float startAngle, float sweep) { Turtle t; const int n = 30; float angle = startAngle * M_PI / 180; float angleInc = sweep * M_PI / (180 * n); float cx = centre.getX(), cy = centre.getY(); t.moveTo(Point2(cx + radius*cos(angle), cy + radius*sin(angle))); for (int k = 1; k < n; k++, angle += angleInc) { t.lineTo(Point2(cx + radius*cos(angle), cy + radius*sin(angle))); } }
void drawArc(Point centre, float radius, float startAngle, float sweep) { Turtle t; const int n = 30; float angle = startAngle * M_PI / 180; //convert to radian float angleInc = sweep * M_PI / (180 * n); float cx = centre.getX(), cy = centre.getY(); //200,200 float a, b; a = cx + radius*cos(angle); b = cy + radius*sin(angle); t.moveTo(Point(a, b)); for (int k = 1; k < n; k++, angle += angleInc) { t.lineTo(Point(cx + radius*cos(angle), cy + radius*sin(angle))); } }
/** The main function begins execution of the program. */ int ccc_win_main() { Turtle myrtle; double size = 3; myrtle.moveTo(5 - size / 2, -9); // bottom of drawing area myrtle.setHeading(90); for (int i = 3; i < 10; i++) { drawPolygon(myrtle, size, i); } myrtle.moveTo(-4 + size / 2, 1); myrtle.setHeading(-18); drawStar(myrtle, size, 5); myrtle.moveTo(-5, -5); // center of drawing area myrtle.setHeading(0); drawRosette(myrtle, size, 40); myrtle.moveTo(5, 5); // center of drawing area myrtle.setHeading(90); drawSpiral(myrtle, .01); usleep(2000000); cwin.clear(); myrtle.moveTo(0, -9); // start of drawing area myrtle.setHeading(0); tree(myrtle, 10, 7, 60, .6); usleep(2000000); cwin.clear(); myrtle.moveTo(-9, -9); // start of drawing area myrtle.setHeading(90); koch(myrtle, 5, .25, 80); usleep(2000000); cwin.clear(); myrtle.moveTo(4, -8); // start of drawing area myrtle.setHeading(0); kochSnowflake(myrtle, 5, .05); myrtle.sleep(2000); myrtle.clear(); string input = myrtle.getString("Enter a message: "); int num1 = myrtle.getInt("Enter an integer number: "); double num2 = myrtle.getDouble("Enter a double number: "); myrtle.moveTo("Click mouse to display the message"); myrtle.print(input); myrtle.moveTo("Click mouse to display the integer number"); myrtle.print(num1); myrtle.moveTo("Click mouse to display the double number"); myrtle.print(num2); myrtle.moveTo("Click mouse to display a square"); myrtle.setHeading(0); myrtle.right(90); myrtle.forward(5); myrtle.right(90); myrtle.forward(5); myrtle.right(90); myrtle.forward(5); myrtle.right(90); myrtle.forward(5); }
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; }