SRect.java |
1 package fi.jyu.mit.graphics; 2 3 /** 4 * Neliskulmio jonka kärkipisteet kaksiulotteisia kokonaislukupisteitä 5 * @author Markus Kivioja 6 * 7 */ 8 public class SRect { 9 10 private final SPoint p1, p2; 11 12 /** 13 * Luo uuden neliskulmion jonka kulmapisteet ovat SPoint-olioita 14 * @param leftTop vasen yläkulma 15 * @param rightBottom oikea alakulma 16 */ 17 public SRect(SPoint leftTop, SPoint rightBottom) { 18 this.p1 = leftTop; 19 this.p2 = rightBottom; 20 } 21 22 /** 23 * Luo uuden neliskulmion käyttäen annettuja kulmien koordinaatteja 24 * @param left vasemman reunan x-koordinaatti 25 * @param top yläreunan y-koordinaatti 26 * @param right oikean reunan x-koordinaatti 27 * @param bottom alareunan y-koordinaatti 28 */ 29 public SRect(int left, int top, int right, int bottom) { 30 this.p1 = new SPoint(left, top); 31 this.p2 = new SPoint(right, bottom); 32 } 33 34 /** 35 * Antaa tämän nelikulmion vasemman yläkulman SPoint-oliona 36 * @return nelikulmion vasen yläkulma 37 */ 38 public SPoint getP1() { 39 return p1; 40 } 41 42 /** 43 * Antaa tämän nelikulmion oikean alakulman SPoint-oliona 44 * @return nelikulmion oikea alakulma 45 */ 46 public SPoint getP2() { 47 return p2; 48 } 49 50 /** 51 * Antaa tämän nelikulmion leveyden 52 * @return nelikulmion leveys 53 */ 54 public int width() { 55 return p2.getX() - p1.getX(); 56 } 57 58 /** 59 * Antaa tämän nelikulmion korkeuden 60 * @return nelikulmion korkeus 61 */ 62 public int height() { 63 return p2.getY() - p1.getY(); 64 } 65 66 /** 67 * Antaa tämän nelikulmion keskipisteen x-koordinaatin 68 * @return nelikulmion keskipisteen x-koordinaatti 69 */ 70 public double midX() { 71 return (p1.getX() + p2.getX()) / 2.0; 72 } 73 74 /** 75 * Antaa tämän nelikulmion keskipisteen y-koordinaatin 76 * @return nelikulmion keskipisteen y-koordinaatti 77 */ 78 public double midY() { 79 return (p1.getY() + p2.getY()) / 2.0; 80 } 81 } 82