[求助]那为高手帮我看看!
www.dimcax.com
[求助]那为高手帮我看看!
(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) (* aa aa))))
(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)
本人初学lisp,那位帮我看看这个是什么问题运行不了呢????在线等哈!!!感谢感谢
d
很明显,这一句
(prompt"\n<<<<<<<<<<c:5text3>>>>>>>>>>)少了个双引号
应该是(prompt"\n<<<<<<<<<<c:5text3>>>>>>>>>>")
如再有错误自己再看看
d
这个也好说,少了对括号
(setq hh (* 2 (sqrt(/ (* ss (- ss aa) (- ss bb) (- ss cc)) aa))))
注意调用的是(sqrt )函数,不是sqrt
d
我运行没错,这是我帮你修改后的程序,我觉得你的程序就是画三角形,里面有很多错误.想通过海伦公式反求一边上的高,对那语句
( hh (
2
((/ ( 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)