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