求大神,直线与圆的交点怎么得到啊?
现在我有两条直线,然后我以交点为圆心画一个圆,与两条直线都相交,然后我想得到4个交点的坐标(不是再框选一次,而是画完了以后直接得到),请问用lisp语言怎么实现啊?谢谢大神 你的这种情况是一个特例,很好求的,用inters求直线交点(圆心),用angle求交点到每个顶点的角度,用polar求到圆心长度为半径的一定角度的点。 ll_j 发表于 2013-9-1 15:52 static/image/common/back.gif你的这种情况是一个特例,很好求的,用inters求直线交点(圆心),用angle求交点到每个顶点的角度,用polar ...
用angle不是需要两个点才能得到角度么,但是我还不知道交点的位置,怎么才能求他和圆心的角度啊 Woo_yz 发表于 2013-9-1 16:14 static/image/common/back.gif
用angle不是需要两个点才能得到角度么,但是我还不知道交点的位置,怎么才能求他和圆心的角度啊
你有两条直线,每条直线有两个端点,用这四个点求交点,就是圆心点,再以这个圆心向这四个端点求角度。 ll_j 发表于 2013-9-1 16:33 static/image/common/back.gif
你有两条直线,每条直线有两个端点,用这四个点求交点,就是圆心点,再以这个圆心向这四个端点求角度。
哦哦,意思懂了,但是我想得到直线端点,这个动作可以在我画圆的同时完成么,不想再框选一次。我是新手啊,谢谢指导 Woo_yz 发表于 2013-9-1 17:36 static/image/common/back.gif
哦哦,意思懂了,但是我想得到直线端点,这个动作可以在我画圆的同时完成么,不想再框选一次。我是新手啊 ...
有两条直线就OK了,直线的组码10和11就是两个端点,随后就按部就班地做就行了,在这里与直线圆的交点和圆本身没有关系,只要半径就可以了。
对实体编程并不一定就“抱着”实体不放,很多东西都可以从几何学中得到。
在VLisp中(我不会),有关于交点的函数,可以直接从实体得到需要的交点,不过这是另一种编程思路,对这种简单问题反而不太方便。
说回来,想得到后面的圆也容易,用(entnext(entlast))就可以。 ll_j 发表于 2013-9-1 17:52 static/image/common/back.gif
有两条直线就OK了,直线的组码10和11就是两个端点,随后就按部就班地做就行了,在这里与直线圆的交点和圆 ...
哦哦,思路懂了。但是怎么样能通过一次点击或者框选得到4个端点的坐标啊,(ssget)选择以后再用什么命令啊? Woo_yz 发表于 2013-9-1 19:50 static/image/common/back.gif
哦哦,思路懂了。但是怎么样能通过一次点击或者框选得到4个端点的坐标啊,(ssget)选择以后再用什么命令 ...
(defun c:tt()
(princ "\n选择相交直线")
(setq ss (ssget '((0 . "LINE")))
r(getdist "\n给出圆半径:")
)
(setq e1 (ssname ss 0)
en (entget e1)
pt11(cdr (assoc 10 en))
pt12(cdr (assoc 11 en))
e2 (ssname ss 1)
en (entget e2)
pt21(cdr (assoc 10 en))
pt22(cdr (assoc 11 en))
)
(setq in0 (inters pt11 pt12 pt21 pt22))
(command ".circle" in0 r)
(setq in11(polar in0 (angle in0 pt11) r)
in12(polar in0 (angle in0 pt12) r)
in21(polar in0 (angle in0 pt21) r)
in22(polar in0 (angle in0 pt22) r)
)
;(setq in (list in11 in12 in21 in22))
(princ)
) ll_j 发表于 2013-9-1 22:43 static/image/common/back.gif
虽然还是没太懂,但是还是谢谢你啦 这个方法挺好的。思路很重要@
页:
[1]
2