/****************************************************************************** * Name: Donna Gabai * NetID: dgabai * Precept: P99 * * Description: A client program for Ngon that reads in Ngons * from StdIn and draws them in order from biggest area to smallest. * * Dependencies: StdDraw, Ngon, StdIn, ST * * Remarks: There are many ways to implement the sorting part of this program! *****************************************************************************/ import java.awt.Color; public class NgonArt { // read from standard input values to define Ngons // store Ngons to draw in order of their areas public static void main(String[] args) { // same scale as Ngon StdDraw.setXscale(-1, 1); StdDraw.setYscale(-1, 1); // how many? int COUNT = StdIn.readInt(); // store Ngons in ST using inverse area as key ST ngons = new ST(); // read in Ngon info, construct Ngon, put in symbol table for (int i = 0; i < COUNT; i++) { int n = StdIn.readInt(); double rad = StdIn.readDouble(); double x = StdIn.readDouble(); double y = StdIn.readDouble(); int r = StdIn.readInt(); int g = StdIn.readInt(); int b = StdIn.readInt(); Color c = new Color(r, g, b); Ngon ngon = new Ngon(n, rad, x, y, c); ngons.put(0 - ngon.area(), ngon); } // sorting by inverse area means largest will come out first for (double inverseArea : ngons) { Ngon ngon = ngons.get(inverseArea); ngon.drawFilled(); } // NOTE: // There were many acceptable solutions for sorting // the Ngons. For instance, some students read in the // Ngons into an array and implemented insertion sort. } }