3 public class Angulo extends Observable implements OperAng, ComparaAng {
10 public int getSigno() {
14 public int getGrados() {
18 public int getMinutos() {
22 public int getSegundos() {
26 public void setSigno(int s) {
35 public void setGrados(int g) {
37 grados = Math.abs(g % 360);
42 public void setMinutos(int m) {
43 minutos = Math.abs(m % 60);
48 public void setSegundos(int s) {
49 segundos = Math.abs(s % 60);
60 public Angulo(int g, int m, int s) {
66 public Angulo(double radianes) {
67 fromRadianes(radianes);
70 public Angulo(Angulo a) {
71 setGrados(a.getGrados());
72 setMinutos(a.getMinutos());
73 setSegundos(a.getSegundos());
76 public String toString() {
77 return ((getSigno() < 0) ? "-" : "") + getGrados() + " " + getMinutos()
78 + "' " + getSegundos() + "\"";
81 public double toRadianes() {
82 return Math.toRadians(getGrados() + getMinutos() / 60.0
83 + getSegundos() / 3600.0) * getSigno();
86 public void fromRadianes(double rad) {
87 rad = Math.toDegrees(rad);
88 setGrados((int)Math.floor(rad));
89 rad -= Math.floor(rad);
91 setMinutos((int)Math.floor(rad));
92 rad -= Math.floor(rad);
94 setSegundos((int)Math.round(rad));
97 public Angulo mas(Angulo a) {
98 return new Angulo(toRadianes() + a.toRadianes());
101 public Angulo menos(Angulo a) {
102 return new Angulo(toRadianes() - a.toRadianes());
105 public int compareTo(Angulo a) {
106 if (toRadianes() > a.toRadianes())
108 if (toRadianes() < a.toRadianes())
114 public static void main(String args[]) {
115 Angulo a1 = new Angulo(2, 10, 20);
116 System.out.println("a1 = " + a1 + " (" + a1.toRadianes() + ")");
117 System.out.println("a1 + a1 = " + a1.mas(a1) + " (" + a1.mas(a1).toRadianes() + ")");
118 Angulo a2 = new Angulo(-500, 4, 40);
119 System.out.println("a2 = " + a2 + " (" + a2.toRadianes() + ")");
120 Angulo a3 = a1.menos(a2);
121 System.out.println("a3 = a1 - a2 = " + a3 + " (" + a3.toRadianes() + ")");
122 Angulo a4 = a2.mas(a1);
123 System.out.println("a4 = a2 + a1 = " + a4 + " (" + a4.toRadianes() + ")");
124 System.out.println("a2 comparado a a1 = " + a2.compareTo(a1));
125 System.out.println("a3 comparado a a1 = " + a3.compareTo(a1));
126 System.out.println("a3 comparado a a4 = " + a3.compareTo(a4));
127 //System.out.println("Java esta roto en el manejo de excepciones!!!");
132 // vim: set et sw=4 sts=4 :