我想找出一个三维立方体中距离n个其他点最远的点。我试着到处玩科学空间沃罗诺,但我想不通(我得到的答案在立方体外面)。我对这类数学不是很在行,如果你能给我介绍一个做大部分数学的图书馆或一些我可以复制的代码,我将不胜感激。你知道吗
编辑:我知道申请图书馆是多么离题,当然,所有有用的答案都将不胜感激!多亏了马修的回答,我想我对我的问题有了更好的理解。你知道吗
我尝试的是:
import numpy as np
from scipy.spatial import Voronoi
def get_points(points)
np_points = np.array(points)
vor = Voronoi(np_points)
fartest_point = None
fartest_point_length = np.inf
for vertex in vor.vertices:
min_length = np.inf
for p in points:
length = norm(p-vertex)
if length < min_length:
min_length = length
if min_length < fartest_point_length:
fartest_point = vertex
fartest_point_length = min_length
return fartest_point
points = [[2, 3, 5], [8, 2, 6], [10, 3, 5], [2, 3, 2], ...]
point = get_points(points)
问题是我在立方体外得到点。我想问题是我没有得到区域与立方体边缘接触的点。你知道吗
我没有一些代码可以提供给您,但我可以分享我对您的问题的理解:
我也相信Voronoi是一个很好的方法来解决你的问题,但它并不像Voronoi图的顶点那样简单。你知道吗
首先,正如你在wikipedia的例子中看到的那样,即使所有的点都在一个正方形内,Voronoi图中的一些顶点也会在正方形外(例如右上角的紫色区域会有一个顶点在外),所以立方体外的一些顶点是正常的。你知道吗
在您的问题中,有两种顶点是距离最远的候选顶点:
然后需要计算这些候选点与最近点之间的距离,然后推断出最远点。你知道吗
祝你好运解决你的问题,希望对你有帮助
NB:最大的空球问题是不同的,如果你取一个正方形和两点,一个顶点和正方形的中心,你想返回相反的顶点
相关问题 更多 >
编程相关推荐