利用autolisp编写绘制正三角形的命令
要求如下1通过输入正三角形某顶点和正三角形边长(用getproint函数获得正三角形某顶点,用getdist函数获得正三角形边长)来绘制2.利用command函数调用pl...
要求如下1 通过输入正三角形某顶点和正三角形边长(用getproint函数获得正三角形某顶点,用getdist函数获得正三角形边长)来绘制2. 利用command函数调用pline命令绘制
展开
1个回答
展开全部
(defun c:zsjx()
(setq fwj (* pi (/ 1.0 6.0)))
(while (setq p1 (getpoint "\n正三角形的顶点:"))
(if (setq L (getdist p1 "\n正三角形的边长:"))
(progn
(setq p2 (polar p1 (* -1.0 fwj) L)
p3 (polar p1 (* 1.0 fwj) L)
)
(command "_pline" p1 p2 p3 "c")
)
)
)
(princ)
)
;或者
(defun c:zsjx1()
(while (setq p1 (getpoint "\n正三角形的顶点:"))
(if (setq p2 (getpoint p1 "\n正三角形的边长:"))
(progn
(setq fwj (angle p1 p2 )
L (distance p1 p2)
p3 (polar p1 (+ fwj (* pi (/ 1.0 3.0))) L);逆时针方向绘制
;p3 (polar p1 (- fwj (* pi (/ 1.0 3.0))) L);顺时针方向绘制
)
(command "_pline" p1 p2 p3 "c")
)
)
)
(princ)
)
(setq fwj (* pi (/ 1.0 6.0)))
(while (setq p1 (getpoint "\n正三角形的顶点:"))
(if (setq L (getdist p1 "\n正三角形的边长:"))
(progn
(setq p2 (polar p1 (* -1.0 fwj) L)
p3 (polar p1 (* 1.0 fwj) L)
)
(command "_pline" p1 p2 p3 "c")
)
)
)
(princ)
)
;或者
(defun c:zsjx1()
(while (setq p1 (getpoint "\n正三角形的顶点:"))
(if (setq p2 (getpoint p1 "\n正三角形的边长:"))
(progn
(setq fwj (angle p1 p2 )
L (distance p1 p2)
p3 (polar p1 (+ fwj (* pi (/ 1.0 3.0))) L);逆时针方向绘制
;p3 (polar p1 (- fwj (* pi (/ 1.0 3.0))) L);顺时针方向绘制
)
(command "_pline" p1 p2 p3 "c")
)
)
)
(princ)
)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询