cdma2546 发表于 2014-11-15 13:43:47

求满足一定条件的距已知点距离最近的点表中的点

具体问题是这样:已知构造元素((1 2 0) 0.35)和元素与此相似构造的表(((4 7 0) 0.23) ((1 4 0) 0.35))求与构造元素第二个值(0.35)相等且距第一个值(1 2 0)点距离最近的构造表元素,有点不太好描述,希望能看懂,请帮助解决,谢谢!

lsjj 发表于 2014-11-15 18:09:21

表的建構方式調整為0.35在前,使用ASSOC會更好處理

自贡黄明儒 发表于 2014-11-15 20:03:30

搞成二维点表,排序

wowan1314 发表于 2014-11-15 21:00:01

试试! 好就不写了, 应该思路是对的。(defun t11 (l1 l2 / a b c)
    (setq a (car l1) b (cadr l1))
    (setq c (vl-remove-if-not '(lambda(x)(eq (cadr x) b)) l2))
    (car (vl-sort c '(lambda(x y)(< (distance (car x) a)(distance (car y) a)))))
)

wowan1314 发表于 2014-11-15 21:06:16

试试! !(defun t22 (l1 l2 / a b c)
    (setq a (car l1) b (cadr l1))
    (mapcar
      '(lambda(x)
            (and (eq b (cadr x))
                (if c
                  (and (< (distance (car x) a)(distance (car c) a))
                        (setq c x)
                  )
                  (setq c x)
                )
            )
      )
      l2
    )
    c
)

cdma2546 发表于 2014-11-15 21:34:04

自贡黄明儒 发表于 2014-11-15 20:03
搞成二维点表,排序

你能出手帮助,非常感谢呀,关键等于这个条件限制让点距离排序有点困难。我就是想求框选范围内与指定单行文字角度相等且距插入点最近的单行文本对象,希望你再次赐教呀,感谢!

cdma2546 发表于 2014-11-15 21:37:01

wowan1314 发表于 2014-11-15 21:06
试试! !

非常感谢呀,手机上的论坛,看不到你的代码,回头我用电脑下载下来试试,谢谢
页: [1]
查看完整版本: 求满足一定条件的距已知点距离最近的点表中的点