Computer Science 252
Problem Solving with Java
Spring 2014, The College of Saint Rose
NestedSquaresRec Demo
A working demo of NestedSquaresRec will appear below. Click inside the applet to interact with it.
NestedSquaresRec BlueJ Project
Click here to download a BlueJ project for NestedSquaresRec.
NestedSquaresRec Source Code
The Java source code for NestedSquaresRec is below. Click on a file name to download it.
import objectdraw.*;
import java.awt.*;
/*
* Example NestedSquaresRec: a recursive implementation of an
* object consisting of nested squares.
*
* Jim Teresco, The College of Saint Rose, CSC 252, Fall 2013
*
* $Id: NestedSquaresRec.java 2227 2013-10-24 03:37:54Z terescoj $
*/
public class NestedSquaresRec {
private static final int SIZE_CHANGE = 4;
// a recursive implementation: we draw nested squares
// by creating the outermost square, then calling
// THIS CONSTRUCTOR to draw the rest, which are really
// just another set of nested squares, just a little bit
// smaller and a little bit down and to the right.
public NestedSquaresRec(double x, double y, int size, DrawingCanvas c) {
if (size > 0) {
// draw one
new FramedRect(x, y, size, size, c);
// draw the rest
new NestedSquaresRec(x + SIZE_CHANGE/2, y+SIZE_CHANGE/2,
size - SIZE_CHANGE, c);
}
}
}
import objectdraw.*;
import java.awt.*;
/*
* Example NestedSquaresLoop: draw some nested squares objects
* when the mouse is pressed
*
* Jim Teresco, The College of Saint Rose, CSC 252, Fall 2013
*
* $Id: DrawNestedSquares.java 2227 2013-10-24 03:37:54Z terescoj $
*/
public class DrawNestedSquares extends WindowController {
public void onMousePress(Location point) {
new NestedSquaresRec(point.getX(), point.getY(), 100, canvas);
}
}