乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 46|回复: 8

[编程交流] 如何检查点是否在

[复制链接]

55

主题

293

帖子

239

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-6 08:44:47 | 显示全部楼层 |阅读模式
你好
 
如何检查坐标点是否是点列表中的成员?
  1. (setq pts '((27.3814 14.1609 0.0) (24.6235 10.9329 0.0) (19.8956 13.6626 0.0) (17.6971 9.85463 0.0)))
  1. (setq pt '(27.3814 14.1609 0.0))
  2. (member pt pts)

 
提前感谢
回复

使用道具 举报

23

主题

89

帖子

66

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
115
发表于 2022-7-6 08:58:51 | 显示全部楼层
  1. (defun C:test (/ pts pt)
  2. (setq pts '((27.3814 14.1609 0.0) (24.6235 10.9329 0.0) (19.8956 13.6626 0.0) (17.6971 9.85463 0.0)))
  3. (setq pt '(27.3814 14.1609 0.0))
  4. (if (member pt pts)
  5. (princ "\n Point list found")
  6. (princ "\n Point list not found")
  7. )
  8. (princ)
  9. )
回复

使用道具 举报

55

主题

293

帖子

239

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-6 09:04:54 | 显示全部楼层
非常感谢你。
 
我的尝试和你的一样,我真的很奇怪为什么一开始它对我不起作用!!!
 
干杯
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 09:14:25 | 显示全部楼层
注意包含real的列表中的(成员)调用。没有模糊因子,因此数字必须精确匹配。这在很大程度上取决于这些数字是如何获得的-大卫
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 09:20:00 | 显示全部楼层
说得好,大卫。我想你可以自己滚。。。
 
  1. (defun _member (item lst)
  2. (if (car lst)
  3.    (if (equal (car lst) item)
  4.      lst
  5.      (_member item (cdr lst))
  6.    )
  7. )
  8. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:23:14 | 显示全部楼层
非常优雅的Alan
 
一些变体:
 
  1. (defun _memberwithfuzz ( expr lst fuzz )
  2.    (vl-member-if '(lambda ( x ) (equal x expr fuzz)) lst)
  3. )
  1. (defun _memberwithfuzz ( expr lst fuzz / x )
  2.    (while (and (setq x (car lst)) (not (equal expr x fuzz)))
  3.        (setq lst (cdr lst))
  4.    )
  5.    lst
  6. )
  1. (defun _memberwithfuzz ( expr lst fuzz / foo bar )
  2.    (defun foo ( x ) (equal x expr fuzz))
  3.    (defun bar ( x )
  4.        (if (foo x) (progn (defun foo ( x ) (list x)) (list x)))
  5.    )
  6.    (apply 'append (mapcar 'bar lst))
  7. )
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 09:35:37 | 显示全部楼层
  1. ;;;SearchAtom List Fuzz
  2. (defun memberfz (s l f / r)
  3. (foreach a l
  4.   (and (not r)
  5.        (equal s a f)
  6.        (setq r T)))
  7. r)

 
-大卫
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 09:38:47 | 显示全部楼层
谢谢,你也是。
 
 
 
具有可定义模糊因子的轻微mod。。。
 
  1. (defun _memberFuzz (item lst fuzz)
  2. (if (car lst)
  3.    (if (equal (car lst) item fuzz)
  4.      lst
  5.      (_member item (cdr lst) fuzz)
  6.    )
  7. )
  8. )
回复

使用道具 举报

55

主题

293

帖子

239

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-6 09:49:33 | 显示全部楼层
谢谢大家,
 
我有很多东西要读。
 
非常感谢。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-7 08:25 , Processed in 0.463820 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表