0 i/ B1 x0 C' P8 l1 X
这是lisp教程里的道练习题: T) s/ w8 v1 R2 Z
利用海伦公式编制这种三角形的编码$ |2 H; F* ~. u1 [& o
这是我的作业
' @! l- G2 F' s: G( v+ J! i(defun c:hl(/ p1 p2 p3 a b c d h s p an1)
: J4 y3 s' e0 J/ A8 ]: d(setvar "cmdecho" 0)% o5 H# k0 W9 }; X; T7 k- p: h+ q
(setq p1 (getpoint "\n插入点:"))
- p+ o0 a! O2 Z' Z(setq a (getreal "\n输入第一条边长度"))0 X# D- E; f9 R! F5 S' c
(setq b (getreal "\n输入第二条边长度"))3 N2 q; \! T( s' ~$ D
(setq c (getreal "\n输入第三条边长度"))9 I0 s0 n; B; b/ L4 N' [
(setq p (/ (+ a b c) 2))
8 w) R4 V9 ]( ?+ r0 ?3 t(setq s (sqrt (* p (- p a) (- p b) (- p c))))$ d, k( ] p& n, v% C+ ?( K
(setq h (/ (+ s s) a))
! a- C% V7 Z$ v& [! Y% N8 R: _(setq d (sqrt (- (* c c) (* h h))))
; l' d0 U; n; \( H(setq p2 (polar p1 0 a))1 m5 K5 K0 O |' `" Y1 Q
(setq an1 (atan h d))1 M6 K+ D6 W. q) s3 o& }" y1 C# F
(setq p3 (polar p1 an1 c))
3 ~/ l# T3 Y8 X& M! s5 [(command "pline" p1 p2 p3 "c")
: Q' @, E0 u0 n2 R(prin1))
; M y H( D8 s B0 ^. u完全OK,很高兴。
1 x( @, Q2 v) D- G' [1 _' h
* T3 [0 b$ o% @1 H[ 本帖最后由 leimc 于 2007-12-14 00:31 编辑 ] |