我有5个x,y
坐标点,我也有一个允许的x,y
偏移量。我可以将这个偏移量应用于每个点以使其正向和反向移动。这意味着在应用所有允许的位移后,每个点有四个可能的位置。
import numpy as np
import matplotlib.pyplot as plt
# xy data for 5 points
xy = [[1929.39695287, 1579.6, 1548.0451124, 1561.47793473, 1053.18163361],
[2020.79329391, 1869.4327316, 1800.71748721, 2112.769, 1840.28]]
xy = zip(*xy)
# Define xy offset
offset = [201.8445, 202.9015]
# Create the 4 possible offset combinations for each of the 5 points
xy_offset = []
for pt in xy:
xy_offset.append([
[pt[0] + offset[0], pt[1] + offset[1]],
[pt[0] + offset[0], pt[1] - offset[1]],
[pt[0] - offset[0], pt[1] + offset[1]],
[pt[0] - offset[0], pt[1] - offset[1]]])
plt.scatter(*zip(*xy), c='k')
for xy in xy_offset:
plt.scatter(*zip(*xy))
plt.show()
原始点以黑色显示如下,其中4个可能的新位置着色(每个点的4个偏移位置颜色相同):
我需要为所有点找到5个“新”位移位置的组合,以便最大化每个点与最近点之间的距离之和。
答案 0 :(得分:1)
那么......近似求解算法......