masoud_123 发表于 2022-7-5 19:50:33

最大化点列表距离

你好
我在管理点列表方面有问题!
 
假设我们有一些点列表。它们可以包含一个或多个点。
 
我只想从每个列表中选择一个点,即所选点之间的距离最大。
 
我试过了,但找不到数学或几何关系来写
算法。
 
限制:每个列表只能选择一个点。
 
谢谢

pBe 发表于 2022-7-5 19:59:14

有点A和一组点列表?假设5点列表,结果是距离A点最远5点?
 
(mapcar        '(lambda (l)
   (cadar
   (vl-sort (mapcar '(lambda (po)
                       (list (distance ptA po) po)
                     )
                      l
              )
              '(lambda (j k)
               (> (car j) (car k))
             )
   )
   )
)
(list ptlst1 ptlst2 ptlst3 ptlst4 ptlst5 )
)
 
 

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

masoud_123 发表于 2022-7-5 20:10:10

 
感谢pBe的快速回复。
没有任何像“点A”这样的指定点,其他点必须位于最远的位置,但所有点(例如来自5个列表,每个列表中有一个点)必须位于彼此距离最远的位置。

pBe 发表于 2022-7-5 20:16:59

 
我明白,点击我发布的链接,看看是否满足您的要求。
 
让我困惑的是为什么结果只有一分?因此,我最初的建议。基地将在名单之外。
 
令人困惑
 
等等,我想你要找的是凸包算法,对吗?
 
http://www.lee-mac.com/convexhull.html

masoud_123 发表于 2022-7-5 20:32:56

我读了这个主题,但我无法解决我的问题。
无论如何,谢谢你。。。

David Bethel 发表于 2022-7-5 20:40:57

你是只做二维点还是三维点?
 
是否选择点图元作为基准?
 
您如何创建点列表?

David Bethel 发表于 2022-7-5 20:45:00

基本发动机可能如下所示:
 

;;;ARG-> Base_point Point_List
;;;RET-> POINT max_dist_from_base
(defun mxpd (b pl / d v)
(setq d 0)
(foreach p pl
   (if (> (distance p b) d)
       (setq d (distance p b)
             v p)))
v)

;;;This does not take into consideration the
;;;possibilities of multiple points being the same distance away

masoud_123 发表于 2022-7-5 20:58:52

 
嗨,大卫
谢谢你的回复。
所有点列表都包含二维坐标,点列表是在lisp函数中创建的。
我们可以假设列表中的一个点作为基点。
 
实际上,这些点是在图形中自动创建的一些引线的尖端。
如果点彼此距离最远,则引线相互接触的可能性较小。
 
谢谢
页: [1]
查看完整版本: 最大化点列表距离