/* FILE NAME: InvertedTrianglesWorld.java * AUTHOR: Stella * DATE: Oct 15 2007 * COMMENTS: Defines a recursive methods * on Turtle World, to be used in lab to draw Inverted nested triangles. * * MODIFICATION HISTORY: * */ import java.awt.*; public class InvertedTrianglesWorld extends TurtleWorld { String parameterNames [] = {"size", "number"}; ParameterFrame params; public void setup() { params = new ParameterFrame(" Parameters",200, 50, parameterNames); } public void run() { InvertedTriangleTurtle tina = new InvertedTriangleTurtle(); // add code to move to good initial position, if you want. tina.invertTriangles(params.getDoubleParam("size"), params.getIntParam("number")); } //------------------------------------------------------------------------------ // The following main method is needed to run the applet as an application public static void main (String[] args) { runAsApplication(new InvertedTrianglesWorld(), "InvertedTrianglesWorld"); } } class InvertedTriangleTurtle extends Turtle { //It draws "number" nested, inverted equilateral triangles. //The outer-most triangle has side of length "size". //Assumes the drawing starts at the lower-left corner. public void invertTriangles(double size, int number) { System.out.println("invertTriangles("+size+", "+number+");"); // add your code here if (number == 0) return; //base case: do nothing //draw one triangle (the outr-most) fd(size); //draw the base of triangle lt(120); fd(size); //draw one more side lt(120); fd(size); //draw the third side //positin for next triangle lt(120); fd(size/2); lt(60); //call the method recursively, to draw the rest of the pattern invertTriangles(size/2, number-1); } // add additional methods here }