| 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