4 public Angulo mas(Angulo f);
6 public Angulo menos(Angulo f);
10 interface ComparaAng {
12 public int compareTo(Angulo f);
16 class Angulo implements OperAng, ComparaAng {
23 public int getSigno() {
27 public int getGrados() {
31 public int getMinutos() {
35 public int getSegundos() {
39 public void setSigno(int s) {
46 public void setGrados(int g) {
48 grados = Math.abs(g % 360);
51 public void setMinutos(int m) {
52 minutos = Math.abs(m % 60);
55 public void setSegundos(int s) {
56 segundos = Math.abs(s % 60);
65 public Angulo(int g, int m, int s) {
71 public Angulo(double radianes) {
72 fromRadianes(radianes);
75 public Angulo(Angulo a) {
76 setGrados(a.getGrados());
77 setMinutos(a.getMinutos());
78 setSegundos(a.getSegundos());
81 public String toString() {
82 return ((getSigno() < 0) ? "-" : "") + getGrados() + " " + getMinutos()
83 + "' " + getSegundos() + "\"";
86 public double toRadianes() {
87 return Math.toRadians(getGrados() + getMinutos() / 60.0
88 + getSegundos() / 3600.0) * getSigno();
91 public void fromRadianes(double rad) {
92 rad = Math.toDegrees(rad);
93 setGrados((int)Math.floor(rad));
94 rad -= Math.floor(rad);
96 setMinutos((int)Math.floor(rad));
97 rad -= Math.floor(rad);
99 setSegundos((int)Math.round(rad));
102 public Angulo mas(Angulo a) {
103 return new Angulo(toRadianes() + a.toRadianes());
106 public Angulo menos(Angulo a) {
107 return new Angulo(toRadianes() - a.toRadianes());
110 public int compareTo(Angulo a) {
111 if (toRadianes() > a.toRadianes())
113 if (toRadianes() < a.toRadianes())
119 public static void main(String args[]) {
120 Angulo a1 = new Angulo(2, 10, 20);
121 System.out.println("a1 = " + a1 + " (" + a1.toRadianes() + ")");
122 System.out.println("a1 + a1 = " + a1.mas(a1) + " (" + a1.mas(a1).toRadianes() + ")");
123 Angulo a2 = new Angulo(-500, 4, 40);
124 System.out.println("a2 = " + a2 + " (" + a2.toRadianes() + ")");
125 Angulo a3 = a1.menos(a2);
126 System.out.println("a3 = a1 - a2 = " + a3 + " (" + a3.toRadianes() + ")");
127 Angulo a4 = a2.mas(a1);
128 System.out.println("a4 = a2 + a1 = " + a4 + " (" + a4.toRadianes() + ")");
129 System.out.println("a2 comparado a a1 = " + a2.compareTo(a1));
130 System.out.println("a3 comparado a a1 = " + a3.compareTo(a1));
131 System.out.println("a3 comparado a a4 = " + a3.compareTo(a4));
132 //System.out.println("Java esta roto en el manejo de excepciones!!!");
137 // vim: set et sw=4 sts=4 :