1 package npw; 2 3 import painter.SPainter; 4 import shapes.SCircle; 5 import shapes.SSquare; 6 7 import javax.swing.*; 8 import java.awt.*; 9 import java.util.Random; 10 11 public class Invention2 { 12 13 private void paintTheImage(){ 14 int canvasDim = 800; 15 double radius = 30; 16 double minSide = 20; 17 double maxSide = 200; 18 int nrOfObjects = 100; 19 SPainter painter = new SPainter("Nondeterministic Invention", canvasDim,canvasDim); 20 int i = 0; 21 while (i < nrOfObjects) { 22 painter.move(); 23 painter.setColor(randomColor()); 24 if (i % 2 == 0) { 25 double diffRad = randomSquareSideLength(minSide, maxSide); 26 SCircle circle = new SCircle(radius+diffRad); 27 painter.paint(circle); 28 } else { 29 double side = randomSquareSideLength(minSide, maxSide); 30 SSquare square = new SSquare(side); 31 painter.paint(square); 32 } 33 i = i + 1; 34 } 35 } 36 37 private static Color randomColor() { 38 Random rgen = new Random(); 39 int r = rgen.nextInt(256); 40 int g = rgen.nextInt(256); 41 int b = rgen.nextInt(256); 42 return new Color(r, g, b); 43 } 44 45 private static double randomSquareSideLength(double minSideLength, double maxSideLength) { 46 Random random = new Random(); 47 return minSideLength + ((maxSideLength - minSideLength) * random.nextDouble()); 48 } 49 50 public Invention2(){ 51 paintTheImage(); 52 } 53 54 public static void main(String[] args) { 55 SwingUtilities.invokeLater(new Runnable() { 56 public void run() { 57 new Invention2(); 58 } 59 }); 60 } 61 } 62