我实际上正在使用Graphmath.Vector2.near(a, b, r)
来检测2个向量是否在范围内。
如果我有一个b
列表并且我需要将5
最接近的向量提取到a
怎么办?
答案 0 :(得分:1)
该模块不会导出任何距离计算功能,但重新创建它是微不足道的:
def distance({x, y}, {u, v}) do
dx = x - u
dy = y - v
:math.sqrt(dx * dx + dy * dy)
end
现在,您可以按照距离点的距离对列表进行排序,并按照前面的5进行排序:
point = {1, 2}
list = [{3, 4}, {5, 6}, ...]
nearest =
list
|> Enum.sort_by(&distance(&1, point))
|> Enum.take(5)