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);
}
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);
}
}
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;
}
}
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());
}
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");
}
Aggregations