我尝试在python中对立方体的面执行Poisson采样。在
我对python不熟悉,所以我在平面上发现了Poisson采样的这个实现 https://github.com/IHautaI/poisson-disc/blob/master/poisson_disc.py
这就是我想到的:
import numpy as np
import random
nPoints = 100
r = 1/np.sqrt(nPoints/6)
length = 1
width = 1
grid = Grid(r, length, width)
rand = (random.uniform(0, length), random.uniform(0, width))
PointsBottom = np.array([list(elem) for elem in grid.poisson(rand)])
Pointstop = np.array([list(elem) for elem in grid.poisson(rand)])
PointsRight = np.array([list(elem) for elem in grid.poisson(rand)])
PointsLeft = np.array([list(elem) for elem in grid.poisson(rand)])
PointsFront = np.array([list(elem) for elem in grid.poisson(rand)])
PointsBack = np.array([list(elem) for elem in grid.poisson(rand)])
X = np.concatenate([PointsBottom[:, 0], Pointstop[:, 0], PointsLeft[:, 0], PointsRight[:, 0], np.zeros(len(PointsFront[:, 0])), np.ones(len(PointsBack[:, 0]))])
Y = np.concatenate([PointsBottom[:, 1], Pointstop[:, 1], np.zeros(len(PointsLeft[:, 0])), np.ones(len(PointsRight[:, 0])), PointsFront[:, 0], PointsBack[:, 0]])
Z = np.concatenate([np.zeros(len(PointsBottom[:, 0])), np.ones(len(Pointstop[:, 0])), PointsLeft[:, 1], PointsRight[:, 1], PointsFront[:, 1], PointsBack[:, 1]])
它工作得很好。我的问题是-有没有更好/更有效的方法来做到这一点?在
目前没有回答
相关问题 更多 >
编程相关推荐