乐筑天下

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

[编程交流] 最大化点列表距离

[复制链接]

4

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 19:50:33 | 显示全部楼层 |阅读模式
你好
我在管理点列表方面有问题!
 
假设我们有一些点列表。它们可以包含一个或多个点。
 
我只想从每个列表中选择一个点,即所选点之间的距离最大。
 
我试过了,但找不到数学或几何关系来写
算法。
 
限制:每个列表只能选择一个点。
 
谢谢
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 19:59:14 | 显示全部楼层
有点A和一组点列表?假设5点列表,结果是距离A点最远5点?
 
  1. (mapcar        '(lambda (l)
  2.    (cadar
  3.      (vl-sort (mapcar '(lambda (po)
  4.                          (list (distance [b][color="blue"]ptA[/color][/b] po) po)
  5.                        )
  6.                       l
  7.               )
  8.               '(lambda (j k)
  9.                  (> (car j) (car k))
  10.                )
  11.      )
  12.    )
  13. )
  14. (list ptlst1 ptlst2 ptlst3 ptlst4 ptlst5 )
  15. )

 
 

 
在列表上相互距离最远的点集合内?
 
--->==={challenge}===查找最远点
回复

使用道具 举报

4

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 20:10:10 | 显示全部楼层
 
感谢pBe的快速回复。
没有任何像“点A”这样的指定点,其他点必须位于最远的位置,但所有点(例如来自5个列表,每个列表中有一个点)必须位于彼此距离最远的位置。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 20:16:59 | 显示全部楼层
 
我明白,点击我发布的链接,看看是否满足您的要求。
 
让我困惑的是为什么结果只有一分?因此,我最初的建议。基地将在名单之外。
 
令人困惑
 
等等,我想你要找的是凸包算法,对吗?
 
http://www.lee-mac.com/convexhull.html
回复

使用道具 举报

4

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 20:32:56 | 显示全部楼层
我读了这个主题,但我无法解决我的问题。
无论如何,谢谢你。。。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 20:40:57 | 显示全部楼层
你是只做二维点还是三维点?
 
是否选择点图元作为基准?
 
您如何创建点列表?
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-5 20:45:00 | 显示全部楼层
基本发动机可能如下所示:
 
  1. [color=#8b4513];;;ARG  -> Base_point Point_List[/color]
  2. [color=#8b4513];;;RET  -> POINT max_dist_from_base[/color]
  3. [b][color=BLACK]([/color][/b]defun mxpd [b][color=FUCHSIA]([/color][/b]b pl / d v[b][color=FUCHSIA])[/color][/b]
  4. [b][color=FUCHSIA]([/color][/b]setq d 0[b][color=FUCHSIA])[/color][/b]
  5. [b][color=FUCHSIA]([/color][/b]foreach p pl
  6.    [b][color=NAVY]([/color][/b]if [b][color=MAROON]([/color][/b]> [b][color=GREEN]([/color][/b]distance p b[b][color=GREEN])[/color][/b] d[b][color=MAROON])[/color][/b]
  7.        [b][color=MAROON]([/color][/b]setq d [b][color=GREEN]([/color][/b]distance p b[b][color=GREEN])[/color][/b]
  8.              v p[b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b]
  9. v[b][color=BLACK])[/color][/b]
  10. [color=#8b4513];;;This does not take into consideration the[/color]
  11. [color=#8b4513];;;possibilities of multiple points being the same distance away[/color]
回复

使用道具 举报

4

主题

11

帖子

8

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 20:58:52 | 显示全部楼层
 
嗨,大卫
谢谢你的回复。
所有点列表都包含二维坐标,点列表是在lisp函数中创建的。
我们可以假设列表中的一个点作为基点。
 
实际上,这些点是在图形中自动创建的一些引线的尖端。
如果点彼此距离最远,则引线相互接触的可能性较小。
 
谢谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 01:34 , Processed in 0.408485 second(s), 79 queries .

© 2020-2025 乐筑天下

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