怎样在lisp中求一条斜线的1/3点
www.dimcax.com
怎样在lisp中求一条斜线的1/3点
怎样在lisp中求一条斜线的1/3点?
在只知道两端点的情况下,求其中一端点在斜线上的1/3点.
初学...还请大家不要笑话.
为什么光有看的没有回复的啊.....
起点=p1 终点=p2 1/3点=p3=?
(setq len (distance p1 p2))
(setq ang (angle p1 p2))
(setq p3 (polar p1 ang (/ len 3)))
勤能补拙
能帮忙解释一下吗?
len是不是就是length?
还有ang是什么意思?是将angle取值的函数?
sorry....看错了。。。len和ang是被定义的函数。。。
学了一天又点头晕了。。。。
:
起点=p1 终点=p2 1/3点=p3=?
(setq len (distance p1 p2))
(setq ang (angle p1 p2))
(setq p3 (polar p1 ang (/ len 3)))
1 ,先求出斜线长度
2, 再求出斜线与水平方向的夹角
3,用极坐标的方式求出(1/3点)
给你编一个程序:
你将程序考到你的cad下给它一个文件名qd.lsp在命令下用(load"qd")回车就可使用了,
在命令下输入qd回车用鼠标点第一点,要求的到这点的距离为线长的三分之一,用鼠标终点,
程序在要求点上画了一个红圆盘。
(defun c:qd ()
(setq os (getvar "osmode"))
(setvar "osmode" 1)
(setq p1 (getpoint "要求的点到这点的距离为线长的三分之一的起点:") p2 (getpoint "线长的终点:"))
(setvar "osmode" 0)
(setq dd (distance p1 p2) d1 (/ dd 3.0)) ;;如你将3.0改为5.0就为五分之一 3.0你可跟据你的需要去改变。
(setq p3 (polar p1 (angle p1 p2) d1))
(command "donut" "0" "5" p3 "")
(command "change" "l" "" "p" "c" "1" "")
(setvar "osmode" os)
)
gbg
非常感谢。。。