找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2889|回复: 16

[已解决] 两个点集lst1表、lst2表,查找距离最近lst1点集每个点最近的lst2表中的点,并成表

[复制链接]

已领礼包: 202个

财富等级: 日进斗金

发表于 2018-4-27 10:26:25 | 显示全部楼层 |阅读模式
悬赏20D豆已解决

最佳答案

查看完整内容

(setq jgz (mapcar '(lambda(pt) (list pt (car (vl-sort lst2 '(lambda(a b)(< (distance pt a) (distance pt b)))))) ) lst1 ) )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 3919个

财富等级: 富可敌国

发表于 2018-4-27 10:26:26 | 显示全部楼层
(setq jgz (mapcar '(lambda(pt)
                          (list pt (car (vl-sort lst2 '(lambda(a b)(< (distance pt a) (distance pt b))))))
                      )
                      lst1
              )
     )

评分

参与人数 1D豆 +10 收起 理由
dyjwyqz5221 + 10 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-4-27 10:30:42 | 显示全部楼层
本帖最后由 newer 于 2018-4-27 10:31 编辑

详细给出数据,list1,list2的例子,然后给出结果做对比。如果有具体的应用,你想从图中做什么,请截图说明。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2018-4-27 10:43:43 | 显示全部楼层
(setq lst1'((6.455e+006 -3.52665e+006 0.0) (6.455e+006 -3.5281e+006 0.0) (6.4487e+006 -3.52665e+006 0.0) (6.4488e+006 -3.52806e+006 0.0)))
(setq lst2 ' ((6.44816e+006 -3.52685e+006 0.0) (6.44835e+006 -3.52826e+006 0.0) (6.45446e+006 -3.52685e+006 0.0) (6.45446e+006 -3.5283e+006 0.0)))

点评

你不能写个一目了然的,用 1,2,3,4 代表的点表啊,你这个一眼看不到那些点是相同的,另外,最后的结果呢?  详情 回复 发表于 2018-4-27 10:53
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-4-27 10:53:39 | 显示全部楼层
dyjwyqz5221 发表于 2018-4-27 10:43
(setq lst1'((6.455e+006 -3.52665e+006 0.0) (6.455e+006 -3.5281e+006 0.0) (6.4487e+006 -3.52665e+006  ...

你不能写个一目了然的,用 1,2,3,4 代表的点表啊,你这个一眼看不到那些点是相同的,另外,最后的结果呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-4-27 11:01:09 | 显示全部楼层
你把这句“查找距离最近lst1点集每个点最近的lst2表中的点”,重新断句下,该加标点的加标点,该前置的前置
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2018-4-27 11:05:46 | 显示全部楼层
前提条件:(equal (length lst1)(length lst2))
(setq lst1'((6.4545e+006 -3.52495e+006 0.0) (6.4545e+006 -3.52665e+006 0.0)))
(setq lst2 ' ((6.45446e+006 -3.52499e+006 0.0) (6.45446e+006 -3.52669e+006 0.0)))
距离最近点结果:(((6.4545e+006 -3.52495e+006 0.0)(6.45446e+006 -3.52499e+006 0.0)) ((6.4545e+006 -3.52665e+006 0.0)(6.45446e+006 -3.52669e+006 0.0)))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2018-4-27 11:08:02 | 显示全部楼层
就是lst1 表里的点距离lst2最近的点,并形成两两点集
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2018-4-27 11:10:34 | 显示全部楼层
对不起,新手,表达不清
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2018-4-27 11:51:08 | 显示全部楼层
自己编出了个,老感觉有重复,求优化
(mapcar
        '(lambda(x)
                (setq a (mapcar
                                  '(lambda(y)
                                        (list (distance x y) (list x y))
                                );;;lambda(y)
                                lst2
                        );;;mapcar
                );;;setq
                (cadr (car (vl-sort a '(lambda (x1 x2)
                                         (< (car x1) (car x2))
                                              );;;lambda
                                );;;vl-sort
                        );;car
                );;;cadr
        );;;lambda(x)
        lst1
);;;mapcar
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2018-4-27 12:19:29 | 显示全部楼层
{R)03H~3MPW[L8ZY89_]O3S.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2018-4-27 12:26:44 | 显示全部楼层
求阴影框与标注文字的一一对应关系,通过斜直线作为中间体
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2018-4-27 12:32:31 | 显示全部楼层
为了躲避其他标注,标注的文字(GBZ-17、GBZ-18)不一定在什么地方,但是斜直线、直线是一定会有的(单独图层),而且这些斜直线、直线都是pkpm软件自动生成的,不是“*POLYLINE",是”LINE",一定与阴影外框(“*POLYLINE")相交。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2018-4-27 12:39:37 | 显示全部楼层
一一对应关系,也就是说,从lst2中的第一个点找到lst1中的最近点后,取出lst2下一个点与lst1中的点再进行比对最近距离时,可以去掉lst1中第一次找到的那个与lst2第一个点最近距离的点,不然就重复了,因为存在一一对应关系,不必要再进行比对,如何去掉lst1中的那个点呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2018-4-27 13:37:55 | 显示全部楼层
本帖最后由 marting 于 2018-4-27 13:39 编辑
dyjwyqz5221 发表于 2018-4-27 12:39
一一对应关系,也就是说,从lst2中的第一个点找到lst1中的最近点后,取出lst2下一个点与lst1中的点再进行比 ...

去掉点,可以用 vl-remove ,功能强点的,可以去开源函数库论坛,找 xd::list:removeE

开源函数库,有N多关于表处理的函数,而且经过效率优化了,你应该先去熟悉下,看看哪些有现成的了,哪些可以组合利用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-23 01:59 , Processed in 0.493695 second(s), 63 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表