Я пытаюсь смоделировать диффузию частиц, и мне нужно создать их начальные координаты. Им нужно начать по кругу с координатами [x,y] в списке. Например, когда частицы начинают симуляцию в квадрате, массив координат выглядит так:
[[2, 2], [2, 3], [3, 2], [3, 3]]
Я также пытаюсь установить начальную позицию частиц примерно в центре сетки. Например, приведенные выше координаты являются начальными позициями в сетке 5x5.
Есть ли у кого-нибудь предложения, как генерировать координаты по кругу (не просто координаты по окружности, заполненные)
Чтобы сгенерировать точки в квадрате, я использую код ниже:
сетка классов():
def __init__(self, x, y):
self.grid = np.zeros((x,y))
self.list_of_atoms=[]
self.x = x
self.y = y
def initiate_atoms_in_square(self,quantity):
"""initiate a square of atoms roughly in the centre of the grid space """
self.side_length = int(math.sqrt(quantity))
self.start = int(self.x/2 + ((self.x**2)/2))
lower_x = int(self.x/2)
upper_x = int(self.x/2+self.side_length)
lower_y = int(self.y/2)
upper_y = int(self.y/2+self.side_length)
coords=[]
for i in range(lower_x,upper_x):
for j in range(lower_y,upper_y):
coords.append([i,j])