如图,点的座标已知,如何过滤出松散的点呢?
就是我只想要每个正方形内只有1到2个点的点。
我能想到用循环遍历比较出来,有什么高效的方案吗?
谢谢
点数据参考:
[ (12, 562), (759, 526), ...]
请不要用numpy以外的工具,blender插件用的,只支持numpy,谢谢
import random
print("#"*55)
verts = []
axis_x = []
axis_y = []
# 数据量万级
for i in range(10000):
x = random.randint(0,999)
y = random.randint(0,999)
axis_x.append(x)
axis_y.append(y)
verts.append( (x, y) )
x_d = max(axis_x)
y_d = max(axis_y)
data = {}
x_c = (x_d // 100) + 1
y_c = (y_d // 100) + 1
for y in range(y_c):
for x in range(x_c):
data[(x, y)] = []
for v in verts:
x = v[0] // 100
y = v[1] // 100
k = (x,y)
if k in data:
data[k].append(v)
for v in data.values():
if len(v) in [1,2]:
print(v)
以上代码可用,但怎么实现更高效的方法?