Search in sources :

Example 1 with Point2D

use of edu.princeton.cs.algs4.Point2D in project AlgorithmsSolutions by Allenskoo856.

the class Ex03 method main.

public static void main(String[] args) {
    int N = Integer.parseInt(args[0]);
    double min = Double.parseDouble(args[1]);
    double max = Double.parseDouble(args[2]);
    StdDraw.setXscale(min, max);
    StdDraw.setYscale(min, max);
    Point2D[] leftTopPoints = new Point2D[N];
    Point2D[] rightBottomPoints = new Point2D[N];
    Interval2D[] intervals = new Interval2D[N];
    for (int i = 0; i < N; i++) {
        double a = StdRandom.uniform(min, max);
        double b = StdRandom.uniform(min, max);
        double left, right, top, bottom;
        Interval1D x, y;
        if (a < b) {
            left = a;
            right = b;
        } else {
            left = b;
            right = a;
        }
        x = new Interval1D(left, right);
        a = StdRandom.uniform(min, max);
        b = StdRandom.uniform(min, max);
        if (a < b) {
            top = a;
            bottom = b;
        } else {
            top = b;
            bottom = a;
        }
        y = new Interval1D(top, bottom);
        leftTopPoints[i] = new Point2D(left, top);
        rightBottomPoints[i] = new Point2D(right, bottom);
        intervals[i] = new Interval2D(x, y);
        intervals[i].draw();
    }
    int containNum = 0, intervalNum = 0;
    for (int i = 0; i < N - 1; i++) {
        for (int j = 0; j < N; j++) {
            if (j > i && intervals[i].intersects(intervals[j])) {
                intervalNum++;
            }
            if (j != i && intervals[i].contains(leftTopPoints[j]) && intervals[i].contains(rightBottomPoints[j])) {
                containNum++;
            }
        }
    }
    System.out.println("Interval count: " + intervalNum);
    System.out.println("Contain count: " + containNum);
}
Also used : Interval1D(edu.princeton.cs.algs4.Interval1D) Point2D(edu.princeton.cs.algs4.Point2D) Interval2D(edu.princeton.cs.algs4.Interval2D)

Example 2 with Point2D

use of edu.princeton.cs.algs4.Point2D in project AlgorithmsSolutions by Allenskoo856.

the class Ex01 method main.

public static void main(String[] args) {
    int N = Integer.parseInt(args[0]);
    Point2D[] points = new Point2D[N];
    for (int i = 0; i < N; i++) {
        points[i] = new Point2D(Math.random(), Math.random());
        points[i].draw();
    }
    if (N > 1) {
        double min = points[0].distanceTo(points[1]);
        for (int i = 0; i < N - 1; i++) {
            for (int j = i + 1; j < N; j++) {
                if (points[i].distanceTo(points[j]) < min) {
                    min = points[i].distanceTo(points[j]);
                }
            }
        }
        System.out.println("Min distance: " + min);
    }
}
Also used : Point2D(edu.princeton.cs.algs4.Point2D)

Example 3 with Point2D

use of edu.princeton.cs.algs4.Point2D in project algorithms-sedgewick-wayne by reneargento.

the class Exercise1 method drawAndCreatePoints.

private static void drawAndCreatePoints(Point2D[] points) {
    StdDraw.setCanvasSize(1024, 512);
    StdDraw.setPenRadius(.015);
    StdDraw.setXscale(0, 1);
    StdDraw.setYscale(0, 1);
    for (int i = 0; i < points.length; i++) {
        double pointX = StdRandom.uniform();
        double pointY = StdRandom.uniform();
        Point2D point = new Point2D(pointX, pointY);
        // The exercise doesn't require drawing, but it adds a nice touch
        StdDraw.point(point.x(), point.y());
        points[i] = point;
    }
}
Also used : Point2D(edu.princeton.cs.algs4.Point2D)

Example 4 with Point2D

use of edu.princeton.cs.algs4.Point2D in project algorithms-sedgewick-wayne by reneargento.

the class Exercise22 method main.

public static void main(String[] args) {
    Exercise22 exercise22 = new Exercise22();
    Point2D point2D = exercise22.new Point2D(20, 13);
    StdOut.println(point2D.hashCode());
    Interval interval = exercise22.new Interval(1, 999);
    StdOut.println(interval.hashCode());
    Interval1D interval1D1 = new Interval1D(10.2, 30.20);
    Interval1D interval1D2 = new Interval1D(2, 1000);
    Interval2D interval2D = exercise22.new Interval2D(interval1D1, interval1D2);
    StdOut.println(interval2D.hashCode());
    Date date = exercise22.new Date(18, 4, 1989);
    StdOut.println(date.hashCode());
}
Also used : Interval1D(edu.princeton.cs.algs4.Interval1D)

Example 5 with Point2D

use of edu.princeton.cs.algs4.Point2D in project algorithms-sedgewick-wayne by reneargento.

the class Exercise26_3Collinearity method main.

public static void main(String[] args) {
    Exercise26_3Collinearity exercise26_3Collinearity = new Exercise26_3Collinearity();
    Point2D[] points = new Point2D[6];
    for (int i = 0; i < points.length; i++) {
        Point2D point = new Point2D(i, i + 1.5);
        points[i] = point;
    }
    int numberOfTriples1 = exercise26_3Collinearity.countTriples(points);
    StdOut.println("Number of triples: " + numberOfTriples1 + " Expected: 10");
    // Based on https://www.algebra.com/algebra/homework/Length-and-distance/Length-and-distance.faq.question.530663.html
    // (-3,4) (3,2) (6,1) are on the same line
    Point2D pointA = new Point2D(-3, 4);
    Point2D pointB = new Point2D(3, 2);
    Point2D pointC = new Point2D(6, 1);
    Point2D[] points2 = { pointA, pointB, pointC };
    int numberOfTriples2 = exercise26_3Collinearity.countTriples(points2);
    StdOut.println("Number of triples: " + numberOfTriples2 + " Expected: 1");
    Point2D pointD = new Point2D(6, 1);
    Point2D[] points3 = { pointA, pointB, pointC, pointD };
    int numberOfTriples3 = exercise26_3Collinearity.countTriples(points3);
    StdOut.println("Number of triples: " + numberOfTriples3 + " Expected: 3");
    // Case with cubic y coordinate
    Point2D pointE = new Point2D(1, 1);
    Point2D pointF = new Point2D(2, 8);
    Point2D pointG = new Point2D(-3, -27);
    Point2D[] points4 = { pointE, pointF, pointG };
    int numberOfTriples4 = exercise26_3Collinearity.countTriples(points4);
    StdOut.println("Number of triples: " + numberOfTriples4 + " Expected: 1");
}
Also used : Point2D(edu.princeton.cs.algs4.Point2D)

Aggregations

Point2D (edu.princeton.cs.algs4.Point2D)4 Interval1D (edu.princeton.cs.algs4.Interval1D)2 Interval2D (edu.princeton.cs.algs4.Interval2D)1