(setq os (getvar ”OSMODE”)) ;
(setvar ”OSMODE” 0) ;
(setq origin (getpoint ”n图案的中心:”))
(setq radius (getdist ”n图案的半径:” origin))
(setq i-radius (getdist ”n内部圆的半径:” origin))
(if (> i-radius radius) (setq i-radius (/ radius 4)))
;
(setq half-r (/ radius 2))
(setq origin-x (car origin))
(setq origin-y (cadr origin))
(command ”CIRCLE” origin radius)
(command ”ARC”
“C”
(list origin-x (+ origin-y half-r))
(list origin-x (+ origin-y radius))
origin
)
(command ”ARC”
“C”
(list origin-x (- origin-y half-r))
(list origin-x (- origin-y radius))
origin
)
(command ”CIRCLE”
(list origin-x (+ origin-y half-r))
i-radius
)
(command ”CIRCLE”
(list origin-x (- origin-y half-r))
i-radius
)
(setvar ”OSMODE” os)
(princ) ;
)
2. 绘制正弦函数曲线:Y=ASin(X)
;给定坐标原点、周期数和振幅,绘制正弦曲线,自变量以“弧度”为单位
(defun c:drawsin () ;
(initget 1) ;见辅导材料P47
(setq lp (getpoint ”n 坐标原点:”) ;
lpx (car lp)
lpy (cadr lp)
)
(initget 7) ;
(setq n (getint ”n 周期数:”)) ;
(setq a (getint ”n 振幅:”))
(setq x 0
step 0.02
)
(command ”pline”) ;
(while (<= x (* 2 n pi)) ;
(command (list (+ lpx x) ;
(+ lpy (* a (sin x)))
)
)
(setq x (+ x step))
)
(command ”") ;结束正弦曲线绘制
(command ”line” lp (list (+ lpx (* 2 n pi)) lpy) ”")
;画水平轴
(command ”line”
(list lpx (+ lpy (* 2 a)))
(list lpx (- lpy (* 2 a)))
“”
) ;画垂直轴
(command ”zoom” ”e” ”") ;图形极大化
(command) ;中断执行任何命令
)
3.绘制极坐标方程R=1+2cos2a在区间[0,2p]的图像
;绘制极坐标方程曲线
(defun c:draw (/ cp)
(setq cp (getpoint ”n基点:”))
(command ”ucs” ”w” ”ucs” ”o” cp ”pline”)
(drawl 0) ;函数调用