高手帮我编个简单程序。
<p>本人在学这个课程,什么都不会。</p><p>现在结课考试,要求是这样的</p><p>就是 随便画一个参数化的图形,用LISP做扩展名的那种。</p><p>图形是随便画的 ,但一定要是参数化,难度最好中等一点。不要 太简单了,(那样我没分)</p><p>小弟在这里先谢谢了。、</p> 画螺旋线的(DEFUN MYERROR (S)
(IF (/= S "Function cancelled") (PRINC (STRCAT "\nError:" S)))
(SETVAR "CMDECHO" OCMD)
(SETVAR "BLIPMODE" OBLP)
(SETQ *ERROR* OLDERR)
(PRINC)
)
(DEFUN CSPIRAL (NTIMES BPOINT HFAC LPPASS STRAD VFAC
/ ANG DIST TP AINC DHINC DVINC CIRCLE DV
)
;;;(SETQ NTIMES nt BPOINT BP HFAC CF LPPASS LP)
(SETVAR "BLIPMODE" 0)
(SETVAR "CMDECHO" 0)
(SETQ CIRCLE (* PI 2) AINC (/ CIRCLE LPPASS) DHINC (/ HFAC LPPASS))
(IF VFAC (SETQ DVINC (/ VFAC LPPASS)))
(SETQ ANG 0.0)
(IF VFAC (SETQ DIST STRAD DV 0.0) (SETQ DIST 0.0))
(IF VFAC (COMMAND "3DPOLY") (COMMAND "PLINE" BPOINT))
(REPEAT NTIMES
(REPEAT LPPASS
(SETQ TP (POLAR BPOINT (SETQ ANG (+ ANG AINC))
(SETQ DIST (+ DIST DHINC))))
(IF VFAC
(SETQ TP (LIST (CAR TP) (CADR TP) (+ DV (CADDR TP)))
DV (+ DV DVINC))
)
(COMMAND TP)
)
)
(COMMAND "")
(PRINC)
)
(DEFUN C:SPIRAL ( / OLDERR OCMD OBLP NT DP CF LP)
(SETQ OLDERR *ERROR* *ERROR* MYERROR
OCMD (GETVAR "CMDECHO")
OBLP (GETVAR "BLIPMODE"))
(SETVAR "CMDECHO" 0)
(INITGET 1)
(SETQ BP (GETPOINT "\nCenter point:"))
(INITGET 7)
(SETQ NT (GETINT "\nNumber of rotations:"))
(INITGET 3)
(SETQ CF (GETDIST "\nGrowth per rotation:"))
(INITGET 6)
(SETQ LP (GETINT "\nPoints per rotation <30>:"))
(cond ((null lp) (setq lp 30)))
(CSPIRAL NT BP CF LP nil nil)
(SETVAR "CMDECHO" OCMD)
(SETVAR "BLIPMODE" OBLP)
(SETQ *ERROR* OLDERR)
(PRINC)
)
(PRINC "\n\tC:SPIRAL.")
(PRINC)
都是高手吗!<br/><br/>
页:
[1]