|
@@ -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
|