gpt4 book ai didi

python - 基于距离的点列表的排序函数

转载 作者:行者123 更新时间:2023-11-28 22:58:50 25 4
gpt4 key购买 nike

[问题已被重写以供澄清]

我正试图想出一个排序函数。正在排序的是一个点列表。

排序函数包含3个点。一个来自要排序的点列表,另外两个用于比较。目标是确定要排序的点与其他两个点的相对欧氏距离。当点直接位于两点之间时,应给出函数的最低值。该函数应利用两点之间的欧氏距离。

到目前为止,公式似乎应该是距离的一些平方,或者在两个给定点之间创建一个点,并使用到该点的欧氏距离。到目前为止,我在下面包含了两个可能的功能。

p is the point to be sorted
p1,p2 are the given points

def f(p,p1,p2): #Midpoint distance
midPoint = midpoint(p1,p2)
return distance(p,midPoint)

def f(p,p1,p2): #Sum of squares
return distance(p,p1) ** 2 + distance(p,p2) ** 2

def distance(pointA,pointB): #Psudocode
dx = pointA.x - pointB.x
dy = pointA.y - pointB.y
return sqrt(dx ** 2 + dy ** 2)

下面是一个例子:

enter image description here

这里考虑的两点是在它们之间绘制的线。圈出的点应该是排序算法中最低的三个点。左边的近点因靠近两个点之一而远离另一个而受到惩罚。

最佳答案

也许是 Least Squares方法会有帮助吗?因此,您对距离的平方求和。这样左边的节点就会因为离右边的节点太远而受到惩罚。

另一种选择是取到两个基本节点所连线上的中点的距离。这也更喜欢三个节点而不是左边的节点。

关于python - 基于距离的点列表的排序函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13478596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com