Witam mam do zrobienia następujące zadanie. Zrobiłem wszystko nie wiem tylko jak stworzyć metodę najdluzszy(). Pod treścią zadania przedstawiam swój kod
public class Test {
public static void main(String[] args)
{
Punkt p1 = new Punkt(0,0), p2 = new Punkt(3,4), p3 = new Punkt(2,3), p4 = new Punkt(4,0);
Odcinek od1 = new Odcinek(p1, p2), od2 = new Odcinek(p1, p4);
Odcinek[] odcinki = {od1, od2, new Odcinek(p3, p4)};
for (Odcinek od : odcinki)
System.out.println(od);
System.out.println("Długość odcinka " + od1.numer() + " = " + od1.dlugosc());
System.out.println("Odległość od punktu " + p3 + " do środka odcinka " + od2.numer() + " = " + od2.odleglosc(p3));
System.out.println("Dłuższy odcinek to " + od2.dluzszy(odcinki[2]));
System.out.println("Rzut odcinka " + od1 + " na X to " + od1.rzutX());
System.out.println("Rzut odcinka " + od1 + " na Y to " + od1.rzutY());
// własna metoda najdluzszy(...) z klasy Test do napisania!
System.out.println("Najdłuższy odcinek to " + najdluzszy(odcinki));
}
}
wyprowadził na konsolę poniższe wyniki:
1:(0,0)-(3,4)
2:(0,0)-(4,0)
3:(3,2)-(4,0)
Długość odcinka 1 = 5.0
Odległość od punktu (2,3) do środka odcinka 2 = 3.0
Dłuższy odcinek to 2:(0,0)-(4,0)
Rzut odcinka 1:(0,0)-(3,4) na X to 4:(0,0)-(3,0)
Rzut odcinka 1:(0,0)-(3,4) na Y to 5:(0,0)-(0,4)
Najdłuższy odcinek to 1:(0,0)-(3,4)
Test
public class Zadanie2 {
/**
* @param args
*/
public static void main(String[] args) {
Punkt p1 = new Punkt(0,0), p2 = new Punkt(3,4), p3 = new Punkt(2,3), p4 = new Punkt(4,0);
Odcinek od1 = new Odcinek(p1, p2), od2 = new Odcinek(p1, p4);
Odcinek[] odcinki = {od1, od2, new Odcinek(p3, p4)};
for (Odcinek od : odcinki)
System.out.println(od);
System.out.println("Długość odcinka " + od1.numer() + " = " + od1.dlugosc());
System.out.println("Odległość od punktu " + p3 + " do środka odcinka " + od2.numer() + " = " + od2.odleglosc(p3));
System.out.println("Dłuższy odcinek to " + od2.dluzszy(odcinki[2]));
System.out.println("Rzut odcinka " + od1 + " na X to " + od1.rzutX());
System.out.println("Rzut odcinka " + od1 + " na Y to " + od1.rzutY());
//własna metoda najdluzszy(...) z klasy Test do napisania!
// System.out.println("Najdłuższy odcinek to " + najdluzszy(odcinki));
}
private static Odcinek najdluzszy(Odcinek[] odcinki) {
double[] dl = new double[7];
int i =1;
for (Odcinek od : odcinki)
{
}
return null;
}
}
Klasa punkt
import java.util.Arrays;
public class Punkt {
protected int[] punkt = new int[2];
public Punkt(int i, int j) {
punkt[0] = i;
punkt[1] = j;
}
public Punkt()
{
}
@Override
public String toString() {
return Arrays.toString(punkt) ;
}
}
Oraz klasa odcinek
public class Odcinek {
private Punkt p1 = new Punkt(),
p2 = new Punkt();
private int nr;
private static int numer;
public Odcinek(Punkt p1, Punkt p2) {
this.p1 = p1;
this.p2 = p2;
nr = ++numer;
}
Odcinek()
{
//nr = ++numer;
}
public int numer() {
return nr;
}
public double dlugosc() {
//double dlugosc;
//dlugosc = Math.sqrt((p1.punkt[0] - p2.punkt[0])*(p1.punkt[0] - p2.punkt[0])+(p1.punkt[1] - p2.punkt[1])*(p1.punkt[1] - p2.punkt[1]));
return Math.sqrt((p1.punkt[0] - p2.punkt[0])*(p1.punkt[0] - p2.punkt[0])+(p1.punkt[1] - p2.punkt[1])*(p1.punkt[1] - p2.punkt[1]));
}
public String toString() {
return ""+nr+":" +p1 +", " +p2;
}
public double odleglosc(Punkt p3) {
Punkt sr = new Punkt();
sr.punkt[0] = (p1.punkt[0]+p2.punkt[0])/2;
sr.punkt[1] = (p1.punkt[1]+p2.punkt[1])/2;
Odcinek odl = new Odcinek(sr, p3);
return odl.dlugosc();
}
public Odcinek dluzszy(Odcinek odcinek) {
if(this.dlugosc()<odcinek.dlugosc())
return odcinek;
else if (this.dlugosc()==odcinek.dlugosc())
return null;
else
return this;
}
public Odcinek rzutX() {
Punkt x1 =new Punkt(),
x2 = new Punkt();
Odcinek x = new Odcinek(x1, x2);
x1.punkt[0] = this.p1.punkt[0];
x1.punkt[1] = 0;
x2.punkt[0] = this.p2.punkt[0];
x2.punkt[1] = 0;
return x;
}
public Odcinek rzutY() {
Punkt x1 =new Punkt(),
x2 = new Punkt();
Odcinek y = new Odcinek(x1, x2);
x1.punkt[1] = this.p1.punkt[1];
x1.punkt[0] = 0;
x2.punkt[1] = this.p2.punkt[1];
x2.punkt[0] = 0;
return y;
}
public Odcinek ktory(int numer)
{
return null;
}
}