帮忙看哪里出错了
求各位高手指点,关于Y坐标比大小的问题 (setq a '(3 4 0))(setq b '(1 2 0))
(apply 'max (mapcar '(lambda (x) (cadr x)) (list a b)))
返回 4
(mapcar '(lambda (x) (max (cadr x))) (list a b))
返回 (4 2)
我想返回 '(3 4 0)抓破头都搞不到一种简单的方法来实现,希望高手指点迷津。
本帖最后由 自贡黄明儒 于 2014-12-3 11:27 编辑
(mapcar '(lambda (x y) (max x y)) a b) 若
(setq b '(5 2 0))
or
(setq b '(5 4 0))
===> ??? Andyhon 发表于 2014-12-3 11:29 static/image/common/back.gif
若
(setq b '(5 2 0))
or
我的目的很简单,就是想判断并获取竖直直线的上部顶点坐标,暂时不会出现Y值相等的类似情况。简化思路还请安迪长老赐教啊。 是许多点取Y值大者;亦或是单纯的坚直线取高点!? Andyhon 发表于 2014-12-3 15:01 static/image/common/back.gif
是许多点取Y值大者;亦或是单纯的坚直线取高点!?
单纯的一条直线而已。类似的用循环处理。(entmake (list '(0 . "TEXT")
(cons 1 str-len)
'(10 1000 1000 0)
h1
(cons 72 2)
(cons 50 ang)
)
)那么问题又来了,怎么这个生成的文字插入点为0呢?无论是变量,还是定量插入点都为0. 文字得多费心些
ex.
(entmake
'((0 . "TEXT")
(10 9 6 0.0)
(40 . 3.0)
(1 . "Test")
(50 . 0.0)
))
(entget (entlast)) ====>
((-1 . <Entity name: 7ef7d228>) (0 . "TEXT") (330 . <Entity name: 7ef79cb8>) (5 . "51C")
(100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbText")
(10 9.0 6.0 0.0) (40 . 3.0) (1 . "Test")
(50 . 0.0) (41 . 1.0) (51 . 0.0) (7 . "STANDARD")
(71 . 0) (72 . 0) (11 0.0 0.0 0.0) (210 0.0 0.0 1.0)
(100 . "AcDbText") (73 . 0)
) Andyhon 发表于 2014-12-3 15:19 static/image/common/back.gif
文字得多费心些
ex.
多谢安迪长老的耐心解答和提醒。 Command: (car (vl-sort (list a b) '(lambda (u v) (> (cadr u) (cadr v)))))
(3 4 0) Andyhon 发表于 2014-12-3 19:51 static/image/common/back.gif
Command: (car (vl-sort (list a b) '(lambda (u v) (> (cadr u) (cadr v)))))
(3 4 0)
遍历论坛终于被安迪长老填补了这个算法的窟窿。多谢了,长老先僧。
页:
[1]
2