Browse Source

Fixed solve-triangle to use radians.

Fixed it to use radians
Samuel W. Flint 9 years ago
parent
commit
12b8b9258b
1 changed files with 11 additions and 11 deletions
  1. 11 11
      solve-triangle.lisp

+ 11 - 11
solve-triangle.lisp

@@ -16,8 +16,8 @@
      (<= number upper)))
 
 (defun solve-asa (anglea sidea angleb)
-  "Solve a ASA triangle using the method of sines.  Angles assumed to be in degrees."
-  (let* ((anglec (- 180 anglea angleb))
+  "Solve a ASA triangle using the method of sines.  Angles assumed to be in radians."
+  (let* ((anglec (- pi anglea angleb))
          (sideb (/ (* (sin angleb)
                       sidea)
                    (sin anglea)))
@@ -37,20 +37,20 @@
                  sidea)))
     (if (between-p -1 sinb 1)
         (let* ((angleb (asin sinb))
-               (anglec (- 180 anglea angleb))
+               (anglec (- pi anglea angleb))
                (sidec (asin (/ (* (sin anglec) sidea)
                                (sin anglea)))))
-          (if (< (+ anglea angleb))
-              (let* ((angleb-prime (- 180 angleb))
-                     (anglec-prime (- 180 anglea angleb-prime))
+          (if (< (+ anglea angleb) pi)
+              (let* ((angleb-prime (- pi angleb))
+                     (anglec-prime (- pi anglea angleb-prime))
                      (sidec-prime (/ (* (sin anglec-prime) sidea)
                                      (sin anglea))))
                 (values (list :angle-a anglea
-                            :angle-b angleb
-                            :angle-c anglec
-                            :side-a sidea
-                            :side-b sideb
-                            :sidec sidec)
+                              :angle-b angleb
+                              :angle-c anglec
+                              :side-a sidea
+                              :side-b sideb
+                              :sidec sidec)
                         (list :angle-a anglea
                               :angle-b angleb-prime
                               :angle-c anglec-prime