( w m$ b/ @" M+ x这是lisp教程里的道练习题2 K& I7 l# f! F, l6 T$ l
利用海伦公式编制这种三角形的编码! Z3 J5 y3 a1 p) d8 f8 n5 E+ k3 S
这是我的作业
. `. p0 y/ \& G( z(defun c:hl(/ p1 p2 p3 a b c d h s p an1)
; q0 p! H1 d, J: s. a4 U(setvar "cmdecho" 0); ?1 \3 E% E% T3 H/ o& ~0 i, X
(setq p1 (getpoint "\n插入点:"))
1 t$ v$ N4 o2 Y+ c( A(setq a (getreal "\n输入第一条边长度"))
1 W' _3 W$ g# X, x(setq b (getreal "\n输入第二条边长度"))* e' T/ ~' _* |; s# G0 c+ w
(setq c (getreal "\n输入第三条边长度"))& u3 W. o7 \0 P# X% J
(setq p (/ (+ a b c) 2))
4 V! K2 ~! v3 s [) B/ ~5 C) U(setq s (sqrt (* p (- p a) (- p b) (- p c))))
# K( w) }5 s( D; a(setq h (/ (+ s s) a))
1 e9 Z1 _9 i( M(setq d (sqrt (- (* c c) (* h h))))
0 X: q4 V/ k i7 ~(setq p2 (polar p1 0 a))0 N( ?6 `7 C' l
(setq an1 (atan h d))
: [3 U1 w# G) c) ]% o9 k(setq p3 (polar p1 an1 c))
3 n! p1 T6 r( b- O(command "pline" p1 p2 p3 "c")
" s& X$ d0 b7 t7 q(prin1))9 A4 b0 \" E$ K( U6 Y4 E) R
完全OK,很高兴。 6 t! N2 w6 @4 k
+ P2 |0 R6 F3 y& c# T
[ 本帖最后由 leimc 于 2007-12-14 00:31 编辑 ] |