C5 y3 @- ^& h* s* p8 V& ]* h9 q% M这是lisp教程里的道练习题9 C& `+ \1 j! S
利用海伦公式编制这种三角形的编码: R8 E1 ?* S8 s# `! N# f% p7 `
这是我的作业 O/ U2 O9 B5 x3 Y" T
(defun c:hl(/ p1 p2 p3 a b c d h s p an1)
$ B5 M; m. t6 S5 t(setvar "cmdecho" 0)
+ h! V" v" y2 ?! }- ]" K( p(setq p1 (getpoint "\n插入点:"))3 m, H, P1 b* f3 V2 H' M. x
(setq a (getreal "\n输入第一条边长度"))1 t" d, e0 B M1 D \
(setq b (getreal "\n输入第二条边长度"))7 o+ [* S% S) I2 \
(setq c (getreal "\n输入第三条边长度"))- N6 T- s$ ~$ k* ]
(setq p (/ (+ a b c) 2))1 X2 }6 }4 z+ N* ~4 R
(setq s (sqrt (* p (- p a) (- p b) (- p c)))) O8 S# S% W7 |
(setq h (/ (+ s s) a))- E% q, I- m- r; _ Q- i$ q; X
(setq d (sqrt (- (* c c) (* h h))))
) A3 K# Y; }) w' |2 B(setq p2 (polar p1 0 a))
9 p* Y5 `5 ^' B3 k7 \. u. C/ w) h(setq an1 (atan h d))
6 ~7 U* c4 S1 \) J! G(setq p3 (polar p1 an1 c))
6 f$ `( e3 |0 s3 ^(command "pline" p1 p2 p3 "c")
* g; t# K. Y) @7 v# b(prin1))0 f+ F& }8 _) Y& V& U
完全OK,很高兴。 - o" x ?# B0 v q# w0 e. ~
% K, s" b T8 @& G$ I& u[ 本帖最后由 leimc 于 2007-12-14 00:31 编辑 ] |