package płaszczyzna; public class Prostokąt { Punkt pozycja; // pozycja dolnego lewego wierzchołka Punkt rozmiar; // szerokośc i wysokośc prostokąta. Uwaga! oba rozmiary muszą być dodatnie double przekątna() { return rozmiar.odlOdŚrodka(); } Prostokąt(int x, int y, int szer, int wys) { pozycja = new Punkt(x, y); rozmiar = new Punkt(Math.abs(szer), Math.abs(wys)); } Prostokąt(Punkt dolny, Punkt rozmiar) { pozycja = dolny; this.rozmiar = rozmiar; } double pole() { return rozmiar.getX() * rozmiar.getY(); } double obwód() { return rozmiar.getX() + rozmiar.getY(); } void przesuń(Punkt ile) { pozycja = pozycja.dodaj(ile); } void przesuń(int x, int y) { przesuń(new Punkt(x, y)); } void zmieńRozmiar(int x, int y) { if (x >= 0 && y >= 0) { rozmiar = new Punkt(x, y); } } void zmienRozmiar(Punkt r) { if (r.getX() >= 0 && r.getY() >= 0) { rozmiar = r; } } void wypiszWspółrzędne() { System.out.println("Prostokat: " + pozycja + ", " + pozycja.dodaj(new Punkt(rozmiar.getX(), 0)) + " " + pozycja.dodaj(new Punkt(0, rozmiar.getY())) + pozycja.dodaj(rozmiar)); } @Override public String toString() { return "prostokąt o wsp. " + pozycja + " i rozmiarze " + rozmiar; } boolean otacza(Punkt a) { if (pozycja.getX() >= a.getX() && pozycja.dodaj(rozmiar).getX() <= a.getX() && pozycja.getY() >= a.getY() && pozycja.dodaj(rozmiar).getY() <= a.getY()) { return true; } return false; } static public void main(String[] args) { Prostokąt a = new Prostokąt(1, 2, 3, 4); a.wypiszWspółrzędne(); System.out.println(a); Punkt p1 = new Punkt(-1, -2); Punkt p2 = new Punkt(-3, -4); Prostokąt b = new Prostokąt(p1, p2); System.out.println(b); b.przesuń(1, 2); System.out.println(b); b.przesuń(new Punkt(3,4)); System.out.println(b); System.out.println("Przekątna "+b.przekątna()); System.out.println("Pole "+b.pole()); System.out.println(b.obwód()); } }