3 V! d( u6 P$ F1 J
这是lisp教程里的道练习题7 j3 k3 B2 x) p/ x8 Z
利用海伦公式编制这种三角形的编码# w4 k4 U' `5 G; f
这是我的作业+ W5 y) X( f0 F/ D. R! \& t
(defun c:hl(/ p1 p2 p3 a b c d h s p an1)
/ }) c' ~! V6 n4 @- m% d(setvar "cmdecho" 0). S; L8 @ [! {) V( S* A
(setq p1 (getpoint "\n插入点:"))
5 f3 U' @5 a# n; f# k2 F2 [- D6 U4 A8 k% o(setq a (getreal "\n输入第一条边长度"))
" D: H: r2 o" z4 B& B(setq b (getreal "\n输入第二条边长度")): s& V5 p% D& [3 Y5 z+ n! D, a
(setq c (getreal "\n输入第三条边长度"))
2 \/ ~' h4 M3 ?. X6 i(setq p (/ (+ a b c) 2))$ Q: v4 }# l. f" j" L9 W! Q4 m0 H2 j
(setq s (sqrt (* p (- p a) (- p b) (- p c)))), f' c! k) Z7 H# C3 x3 V! E- X
(setq h (/ (+ s s) a))1 a- N4 n' P+ ^# E6 O" y j$ o( P
(setq d (sqrt (- (* c c) (* h h)))) E2 q) T3 Y) g% L7 G
(setq p2 (polar p1 0 a))
7 N: V' N3 [4 X" R! M5 ] g) u( E(setq an1 (atan h d))
$ L4 U) a) a m( f! Z(setq p3 (polar p1 an1 c))
; s- R1 x& A1 U(command "pline" p1 p2 p3 "c"), C5 T' ^$ f: A7 W Q, o3 x1 o
(prin1)) C1 D8 |- O2 I" s. a+ R: [, I
完全OK,很高兴。 ( R7 _+ Y6 @4 K- P
- f4 b+ y9 N" y( T% \6 b[ 本帖最后由 leimc 于 2007-12-14 00:31 编辑 ] |