public class Punkt {
double x;
double y;
}
public class X {
Punkt[] punkt;
}
Wice może jak napisać metod której wynikiem będą dwa punkty tworzące najdłuższy odcinek pionowy??
public class Punkt {
double x;
double y;
}
public class X {
Punkt[] punkt;
}
Wice może jak napisać metod której wynikiem będą dwa punkty tworzące najdłuższy odcinek pionowy??
Sprawdzasz czy współrzędne x są równe i obliczasz długość odcinka:
public class Program {
public static void main(String[] args) {
Point[] points = { new Point(2, 3), new Point(12, 9), new Point(2, 20),
new Point(1, 7), new Point(2, -32) };
Point start = null, end = null;
double max = Double.MIN_VALUE, tmp;
for (int i = 0; i < points.length; i++) {
for (int j = i + 1; j < points.length; j++) {
if (points[i].getX() == points[j].getX()) {
tmp = Math.abs(points[i].getY() - points[j].getY());
if (tmp > max) {
max = tmp;
start = points[i];
end = points[j];
}
}
}
}
System.out.println("Max: " + max);
System.out.println("Start: " + start.toString());
System.out.println("End: " + end.toString());
}
public static class Point {
private double x;
private double y;
public Point(double x, double y) {
this.x = x;
this.y = y;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
@Override
public String toString() {
return String.format("(%f, %f)", x, y);
}
}
}
@mykhaylo, głupio będzie wyglądać wyjście programu gdy w tablicy points nie ma pary punktów tworzących odcinek pionowy.
@bo, dopisanie dodatkowego warunku nie powinno być dla nikogo kłopotem. Jeśli masz jakieś uwagi lub propozycje, to bez problemu możesz zmodyfikować mój kod.