- 积分
- 34512
- 明经币
- 个
- 注册时间
- 2002-11-20
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2004-4-13 08:01:00
|
显示全部楼层
根据你的已知条件应该是求不出三角形的,不过按你的程序意思倒是可以了,这个样子就很简单了,你为什么会做的那么复杂?数学不够扎实啊...
三角形的三边是有限制的,你最好在程序里做个判断:
(defun c:text1( / J1 A B C cosA sinA <A) (setq J1 (getpoint "\n请输入三角形左下角点:")) (setq A (getreal "\n请输入三角形底边长:")) (setq B (getreal "\n请输入三角形左邻边长:")) (setq C (getreal "\n请输入三角形右邻边长:")) (setq cosA (/ (- (+ (expt A 2) (expt B 2)) (expt C 2)) (* 2 A B))) (if (= cosA 0) (setq <A (/ pi 2)) (progn (setq sinA (sqrt (- 1 (expt cosA 2)))) (setq <A (atan (/ sinA cosA))) ) ) (command "_.pline" J1 (polar J1 0 A) (polar J1 <A B) "cl") (princ) ) |
|