荒野孤行 发表于 2013-12-27 22:38:48

求两条多段线的中线

本帖最后由 荒野孤行 于 2014-1-29 14:10 编辑

见图片效果,已知两条如下图中的红色线,要得到下图中的两条绿色线,通过lisp如何实现,请各位大师提供下思路,万分感谢。

实现功能:选择两条多段线,自动绘制出他们的中心线。

daivce 发表于 2019-10-9 17:01:09

牛逼,是个好东西,真好用,谢谢

edata 发表于 2013-12-27 23:07:26

如果只是要求平行的线的线距居中,就用中心线偏移,取得的折线上的两点,通过点与另一条计算是否平行,平行就取得这两点垂直偏移点,继续判断,直到无平行线为止,等到的点集合生成中心线。双向偏移线。即可。

荒野孤行 发表于 2013-12-28 01:28:13

edata 发表于 2013-12-27 23:07
如果只是要求平行的线的线距居中,就用中心线偏移,取得的折线上的两点,通过点与另一条计算是否平行,平行 ...

多谢告知思路,写好后的程序将发表到此帖上,需用 到vlax-curve-getclosestpointto

菜卷鱼 发表于 2013-12-30 14:14:28

顶一个!看了哥们你的程序,感觉你很有个性

edata 发表于 2013-12-30 16:02:42

荒野孤行 发表于 2013-12-28 01:28 static/image/common/back.gif
多谢告知思路,写好后的程序将发表到此帖上,需用 到vlax-curve-getclosestpointto

如果两根线的都是折线,就会出现点的计算错误,不在中点,因为vlax-curve-getclosestpointto是最近点,而斜线上的点最近,所以出错。因此对于斜线与斜线的中心线不能贸然使用。
对于os对象捕捉,个人建议还是用16384关闭捕捉,最起码用save os变量的方法。记得我上次给你回帖的时候也说过的。
个人意见,仅供参考。

荒野孤行 发表于 2013-12-30 18:51:31

edata 发表于 2013-12-30 16:02 static/image/common/back.gif
如果两根线的都是折线,就会出现点的计算错误,不在中点,因为vlax-curve-getclosestpointto是最近点,而 ...

我的程序思路是:以节点多的曲线为主要曲线,找另一条曲线上的最近点(到主曲线上的)
如果两条曲线均有2个以上的拐点,并且节点个数不一样,如何判断呢?
我的工作中用到的一条是折线,另外一条是直线,所以对于我来说,其实足够用了。
多谢大师。

edata 发表于 2013-12-30 19:04:20

荒野孤行 发表于 2013-12-30 18:51 static/image/common/back.gif
我的程序思路是:以节点多的曲线为主要曲线,找另一条曲线上的最近点(到主曲线上的)
如果两条曲线均有2个 ...

编制lisp的关键就是拿来用的,能用就好。对于多个拐点的线判断,涉及到几何和矢量计算,简单的方法还没想到,需要判断顺序,计算最近顺序点对与最近点对,判断点对距离,绘制点对中心线。

q3_2006 发表于 2013-12-30 19:30:04

荒野孤行 发表于 2013-12-28 01:28 static/image/common/back.gif
多谢告知思路,写好后的程序将发表到此帖上,需用 到vlax-curve-getclosestpointto

我不懂什么是算法...但接手这样的图会这样画

荒野孤行 发表于 2013-12-30 19:54:34

q3_2006 发表于 2013-12-30 19:30 static/image/common/back.gif
我不懂什么是算法...但接手这样的图会这样画

我是画了线路,然后在中间挖空间隙,电子行业的设计

荒野孤行 发表于 2014-1-9 11:13:13

edata 发表于 2013-12-30 19:04
编制lisp的关键就是拿来用的,能用就好。对于多个拐点的线判断,涉及到几何和矢量计算,简单的方法还没想 ...

哥们,我更新了源码,有些问题,再帮我看下吧,谢谢。
页: [1] 2
查看完整版本: 求两条多段线的中线