/* * Program to paint a blue dot in the context of the Nonrepresentational * Painting world, NPW. */ package npw; import java.awt.Color; import java.util.Scanner; import javax.swing.*; import painter.SPainter; import shapes.SCircle; import shapes.SSquare; public class Invention1 { //THE SOLUTION TO THE BLUE DOT PROBLEM private void paintTheImage() { int numberOfSquares = getNumber("Number of concentric squares and circles"); SPainter painter = new SPainter("Invention1", 800, 800); int squareSide = 700; SSquare square = new SSquare(squareSide); int sFactor = squareSide/(numberOfSquares+1); paintOneSquare(square,painter,numberOfSquares,sFactor); } private void paintOneSquare(SSquare square, SPainter painter,int numberOfSquares,int sFactor) { int i = 0; while (i<=numberOfSquares){ if(i%2==0){ painter.tl(45); painter.setBrushWidth(5); painter.setColor(Color.RED); painter.draw(square); SCircle circle = square.inscribingCircle(); painter.setColor(Color.BLUE); painter.draw(circle); square.shrink(sFactor); }else{ painter.tl(45); painter.setBrushWidth(5); painter.setColor(Color.YELLOW); painter.draw(square); SCircle circle = square.inscribingCircle(); painter.setColor(Color.GREEN); painter.draw(circle); square.shrink(sFactor); } i=i+1; } } private int getNumber(String s) { String numberOfSquares = JOptionPane.showInputDialog(null,s+"?"); Scanner scanner = new Scanner(numberOfSquares); return scanner.nextInt(); } // REQUIRED INFRASTRUCTURE public Invention1() { paintTheImage(); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new Invention1(); } }); } }