我运行没错,这是我帮你修改后的程序,我觉得你的程序就是画三角形,里面有很多错误.想通过海伦公式反求一边上的高,对那语句 (setq hh (*
2
(sqrt(/ (* ss (- ss aa)
(- ss bb)
(- ss cc)) aa)))) 逻辑错误了,自己想想 (defun c:5text3() ;以下值apt,aa,bb,cc须由用户输入 (setq apt (getpoint "\n请输入左下方的点:")) (setq aa (getdist "\n请输入边长A:")) (setq bb (getdist "\n请输入边长B:")) (setq cc (getdist "\n请输入边长C:")) ;以下ss,hh,mm,ang_ap由程序计算 (setq ss (/(+ aa bb cc) 2)) (setq hh (/ (* 2 (sqrt (* ss (- ss aa) (- ss bb) (- ss cc)))) aa)) (setq mm (sqrt (- (* cc cc) (* hh hh)))) (setq ang_ap (atan (/ hh mm))) ;以下根据apt,aa,bb,cc,ang_ap配合polar函数定bpt,cpt坐标 (setq bpt (polar apt 0 aa)) (setq cpt (polar apt ang_ap cc)) ;以下由apt,bpt,cpt配合line函数成图 (command "line" apt bpt "") (command "line" apt cpt "") (command "line" cpt bpt "") (prin1) ) (prompt"\n<<<<<<<<<<c:5text3>>>>>>>>>>") (prin1) |