// draw N-by-N percolation system public static void draw(Percolation perc, int N) { StdDraw.clear(); StdDraw.setPenColor(StdDraw.BLACK); StdDraw.setXscale(-.05 * N, 1.05 * N); StdDraw.setYscale(-.05 * N, 1.05 * N); // leave a border to write text StdDraw.filledSquare(N / 2.0, N / 2.0, N / 2.0); // draw N-by-N grid int opened = 0; for (int row = 1; row <= N; row++) { for (int col = 1; col <= N; col++) { if (perc.isFull(row, col)) { StdDraw.setPenColor(StdDraw.BOOK_LIGHT_BLUE); opened++; } else if (perc.isOpen(row, col)) { StdDraw.setPenColor(StdDraw.WHITE); opened++; } else StdDraw.setPenColor(StdDraw.BLACK); StdDraw.filledSquare(col - 0.5, N - row + 0.5, 0.45); } } // write status text StdDraw.setFont(new Font("SansSerif", Font.PLAIN, 12)); StdDraw.setPenColor(StdDraw.BLACK); StdDraw.text(.25 * N, -N * .025, opened + " open sites"); if (perc.percolates()) StdDraw.text(.75 * N, -N * .025, "percolates"); else StdDraw.text(.75 * N, -N * .025, "does not percolate"); }
private static void show(double[] a, int i, int j) { StdDraw.setYscale(-a.length + i + 1, i); StdDraw.setPenColor(StdDraw.LIGHT_GRAY); for (int k = 0; k < j; k++) StdDraw.line(k, 0, k, a[k] * 0.6); StdDraw.setPenColor(StdDraw.BOOK_RED); StdDraw.line(j, 0, j, a[j] * 0.6); StdDraw.setPenColor(StdDraw.BLACK); for (int k = j + 1; k <= i; k++) StdDraw.line(k, 0, k, a[k] * 0.6); StdDraw.setPenColor(StdDraw.LIGHT_GRAY); for (int k = i + 1; k < a.length; k++) StdDraw.line(k, 0, k, a[k] * 0.6); }
public static void main(String[] args) { StdDraw.setXscale(0, 32768); StdDraw.setYscale(0, 32768); StdDraw.show(0); In in = new In(args[0]); int N = in.readInt(); Point[] points = new Point[N]; for (int i = 0; i < N; i++) { int x = in.readInt(); int y = in.readInt(); Point p = new Point(x, y); p.draw(); points[i] = p; } brute(points); StdDraw.show(0); }
// unit test public static void main(String[] args) { /* YOUR CODE HERE */ Point p0 = new Point(1000, 2000); Point p1 = new Point(2000, 2000); Point p2 = new Point(4000, 1000); StdOut.println("Slope of P0: " + p0 + " to P1: " + p1 + " is " + p0.slopeTo(p1)); StdOut.println("Slope of P0: " + p0 + " to P2: " + p2 + " is " + p0.slopeTo(p2)); StdOut.println("Compare P1: " + p1 + " and P2: " + p2 + " is " + p1.compareTo(p2)); // StdOut.println("Compare slope of P0: " + p0 + " to P1: " + p1 + " and P2: " + p2 + " is " + // p1.compareTo(p2)); // draw the points StdDraw.show(0); StdDraw.setXscale(0, 32768); StdDraw.setYscale(0, 32768); p0.draw(); p1.draw(); p2.draw(); p0.drawTo(p1); p0.drawTo(p2); StdDraw.show(); }
public static void main(String[] args) { // read the N points from a file args = new String[1]; args[0] = "test/rs1423.txt"; In in = new In(args[0]); int N = in.readInt(); Point[] points = new Point[N]; for (int i = 0; i < N; i++) { int x = in.readInt(); int y = in.readInt(); points[i] = new Point(x, y); } // draw the points StdDraw.show(0); StdDraw.setXscale(0, 32768); StdDraw.setYscale(0, 32768); for (Point p : points) { p.draw(); } StdDraw.show(); // print and draw the line segments FastCollinearPoints collinear = new FastCollinearPoints(points); for (LineSegment segment : collinear.segments()) { StdOut.println(segment); segment.draw(); } }
public static void main(String[] args) { String input = "C:/Users/gkoontz/workspace/algoAssignments/src/collinear/equidistant.txt"; // read the N points from a file // In in = new In(args[0]); In in = new In(input); int N = in.readInt(); Point[] points = new Point[N]; for (int i = 0; i < N; i++) { int x = in.readInt(); int y = in.readInt(); points[i] = new Point(x, y); } // draw the points StdDraw.show(0); StdDraw.setXscale(0, 32768); StdDraw.setYscale(0, 32768); for (Point p : points) { p.draw(); } StdDraw.show(); // print and draw the line segments // BruteCollinearPoints collinear = new BruteCollinearPoints(points); FastCollinearPoints collinear = new FastCollinearPoints(points); for (LineSegment segment : collinear.segments()) { StdOut.println(segment); segment.draw(); } }
public static void main(String[] args) { // read the n points from a file In in = new In(args[0]); int n = in.readInt(); Point[] points = new Point[n]; for (int i = 0; i < n; i++) { int x = in.readInt(); int y = in.readInt(); points[i] = new Point(x, y); } // draw the points StdDraw.enableDoubleBuffering(); StdDraw.setXscale(0, 32768); StdDraw.setYscale(0, 32768); for (Point p : points) { p.draw(); } StdDraw.show(); // print and draw the line segments FastCollinearPoints collinear = new FastCollinearPoints(points); for (LineSegment segment : collinear.segments()) { StdOut.println(segment); segment.draw(); } StdDraw.show(); }