AutoCAD 二次开发 AutoLISP画图 题目:和的平方、极坐标四叶曲线、阿基米德螺旋线

2023-02-11 10:09:40 浏览数 (3)

我的GIS/CS学习笔记:https://github.com/yunwei37/ZJU-CS-GIS-ClassNotes <一个浙江大学本科生的计算机、地理信息科学知识库 >

写入下列三道题的LISP程序,并在实习报告中对运行结果截图,简略描述程序思路。

1、 有的两位数具有一种有趣的性质:该数的平方分成两个两位数,它们的和等于该数本身。例如:552=3025,而55=30 25,编程,找出具有这样性质的全部两位数

代码语言:javascript复制
(defun c:xinzhi ( / n n1 n2 s)      ;该数的平方分成两个两位数,它们的和等于该数本身。
  (setq n 10)
  (while (<= n 99) (setq n1 (/ ( * n n ) 100))
   (setq n2 ( - ( * n n ) (* n1 100)))
  (setq s (  n1 n2))
  (if (= s n) (princ (strcat "n" (rtos n)))
         )                      ;if_end
   (setq n (  n 1))
  )                             ;while_end
    (princ)
)                             ;end

效果:

2、 编程,画极坐标方程R=1 2cos(2θ)在[0, 2π]内的曲线

代码语言:javascript复制
(command "pline" )      ;画极坐标方程R=1 2cos(2θ)在[0, 2π]内的曲线
(setq n 0)
(repeat 3600
(command (polar (list 0 0) (/ n 57.3) (   1 ( * 2 ( cos ( * 2 (/ n 57.3) ) ) ) ) ))
(setq n (   0.1 n))
)
(command) 

3、 编程,绘制阿基米德螺旋线

代码语言:javascript复制
(command "pline" )          ;绘制阿基米德螺旋线
(setq n 0)
(repeat 1000
(command (polar (list 0 0) (/ n 57.3) n))
(setq n (1  n))
)
(command) 

1 人点赞