最大化点列表距离
你好我在管理点列表方面有问题!
假设我们有一些点列表。它们可以包含一个或多个点。
我只想从每个列表中选择一个点,即所选点之间的距离最大。
我试过了,但找不到数学或几何关系来写
算法。
限制:每个列表只能选择一个点。
谢谢 有点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}===查找最远点
感谢pBe的快速回复。
没有任何像“点A”这样的指定点,其他点必须位于最远的位置,但所有点(例如来自5个列表,每个列表中有一个点)必须位于彼此距离最远的位置。
我明白,点击我发布的链接,看看是否满足您的要求。
让我困惑的是为什么结果只有一分?因此,我最初的建议。基地将在名单之外。
令人困惑
等等,我想你要找的是凸包算法,对吗?
http://www.lee-mac.com/convexhull.html 我读了这个主题,但我无法解决我的问题。
无论如何,谢谢你。。。 你是只做二维点还是三维点?
是否选择点图元作为基准?
您如何创建点列表? 基本发动机可能如下所示:
;;;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
嗨,大卫
谢谢你的回复。
所有点列表都包含二维坐标,点列表是在lisp函数中创建的。
我们可以假设列表中的一个点作为基点。
实际上,这些点是在图形中自动创建的一些引线的尖端。
如果点彼此距离最远,则引线相互接触的可能性较小。
谢谢
页:
[1]