6 j, |' h8 t+ x
这是lisp教程里的道练习题
3 P4 v4 l. x) S) S8 T利用海伦公式编制这种三角形的编码
Y) b4 P' ?( S& J$ Y% f这是我的作业' }3 u4 m/ a( T: L
(defun c:hl(/ p1 p2 p3 a b c d h s p an1)
" i, `3 i' b- r8 a, A/ c' Q(setvar "cmdecho" 0)
5 j9 i8 j& l. o6 ^, v(setq p1 (getpoint "\n插入点:"))! L8 g$ n2 a9 r& |
(setq a (getreal "\n输入第一条边长度"))
& c, }1 G% A9 z G3 ?! t7 ?(setq b (getreal "\n输入第二条边长度"))
5 d3 E, l3 J9 d6 v+ {- |(setq c (getreal "\n输入第三条边长度"))1 F, M6 t& D# D% R& P, }
(setq p (/ (+ a b c) 2))
# g/ D6 {" b6 ?4 k3 T3 u$ r. ?( l7 j(setq s (sqrt (* p (- p a) (- p b) (- p c))))
o% B8 X- s8 h( V(setq h (/ (+ s s) a))) C$ |, Q1 s) f! H, n
(setq d (sqrt (- (* c c) (* h h))))
8 u' F, }: d3 f(setq p2 (polar p1 0 a))
$ E) c e! Z) T0 X8 Q(setq an1 (atan h d))( ^. n& W, E1 k* ?0 y. d
(setq p3 (polar p1 an1 c)). i% R4 H' j; [% b9 B
(command "pline" p1 p2 p3 "c")7 Z" ?. }! w. X$ B" {& h
(prin1))
: B( ~# d/ i% j" H; e, _完全OK,很高兴。
$ O: O: D4 W( d/ K. j6 p3 l4 c) X, c) X9 _$ G
[ 本帖最后由 leimc 于 2007-12-14 00:31 编辑 ] |