public void eiffelTower (double size, double shrinkFactor, double angle,
int levels, double offset) {
System.out.println("eiffelTower("+size+", "+shrinkFactor+
", "+angle+", "+levels+", "+offset+");");
if (levels>0) { // base case
eiffelBase(size, angle); // draw the base story of the Eiffel Tower
moveToNextStory(offset); // move in position to draw next pattern
eiffelTower(size*shrinkFactor, shrinkFactor, angle, levels-1, offset); //draw next pattern
returnToStart(offset); // meet invariant: start and end in same place
}
}