Write a program that uses recursion to draw squares- one square on the corner of each square.



Write a program that uses recursion to draw squares- one square on the corner of each square. You can write an applet or a standalone GUI program. Either is fine.


Your program should have instance data that defines:

the initial size of the largest square

the minimum length of a size of a square

by what factor you shrink the size for each round of squares

Your program will include a recursive method to draw a square.

The method should draw one square (the small part of the problem it solves now).

The method should then recursively call itself to draw the four squares at the corner of the current square. (The sides of these smaller squares are reduced by some factor.)

The recursive method should be initially invoked once from the paint or paintComponent method.


What parameters should that method have?

What initial values are sent into the first call to this method?

When does the method stop (what is the base case)?


In my sample below, I use an initial side length of 200, a minimum side length of 10, and I cut the size of a side in half each time.

You do not have to use these values- experiment with your own.

In the sample, I fill the square in gray and then draw the outline in black. You are not required to do this.

I include a couple versions of the sample output below. You only need to submit one version of your program.

I recommend first getting the program working with using a method to draw a single square.

I strongly recommend sketching out the coordinates on paper before attempting to put them into code.

I have provided template code that you can use to start from for an applet or a standalone program. You are not required to use this.

Extra Credit

(15 points) Instead of drawing a square, draw a different polygon (e.g., any closed-sided figure but not a circle, square, or rectangle). It could be a triangle, parallelogram, trapezoid, be creative!

Note: If completing the extra credit, you do not need to do both the square version and the extra credit- you can complete only the extra credit.

If you want to see what this looks like with fewer squares, to get a better sense of what is going on, here are two images that use a minimum side length of 50 and 100.

Habilidades: Java, JavaFX, Javascript, Arquitectura de software, Verificación de software

Ver más: write case study exercise program, write execute mips assembly program performs addition numbers, adaptive integration program square domain, write mips assembly language program, write vb picture slideshow program, write smile excel vba program, write proposal set training program, write mips assembly language program mars simulator prompt user string process string character time display specific informatio, write mac compatible vb program, write email contact import program java, write draw svg file, write sports arb service program, write code structure payroll program, need someone can write student operating system program, write mips assembly language program find

ID de proyecto: #11754506