#python-3.x #grid
#python-3.x #сетка
Вопрос:
У меня есть квадратный макет размера 100*100
. Я хочу разделить этот макет на сетки разного размера 5*5
.Как я могу это сделать, используя python?
Комментарии:
1. Пожалуйста, будьте более конкретны в отношении того, чего вы пытаетесь достичь. Вы создаете графический интерфейс? Как вы добились макета 100 * 100? Какова конечная цель этой программы?
2. Это не для графического интерфейса, я хочу выделить узлы в этих сетках с разной плотностью. Чтобы иметь возможность это делать, я хочу сохранить вкладку с местоположениями и соответствующим номером сетки.
3. какой результат вы ожидаете от этого? Вы хотите создать функцию, которая может принимать размер сетки и возвращать список со всеми узлами? Я все еще не совсем понимаю, что вы имеете в виду под «соответствующим номером сетки»? Вы хотите указать индекс (например, 400) и получить узел (например, (20,20)?
4. Да, создайте функцию, которая может принимать размер сетки и возвращать список со всеми узлами. Я в основном хочу выделить ресурсы для каждой из этих сеток, а затем построить их на основе плотности ресурса в каждой сетке.
Ответ №1:
Я все еще не уверен, что это то, что вы ищете, поэтому поправьте меня, если это не так. Я предположил, что лучший способ справиться с описанной вами проблемой — создать Grid
класс. Это упрощает одновременное создание нескольких разных сеток, не создавая беспорядка с данными. Я придумал это решение:
class Grid():
def __init__(self,x,y,grid_len):
self.total_x = x
self.total_y = y
self.grid_len = grid_len
self.node_list=[]
for y in range(self.total_y//self.grid_len):
for x in range(self.total_x//self.grid_len):
self.node_list.append((x*self.grid_len,y*self.grid_len))
def return_node_at_given_x_y(self,x,y):
node_index = y*(self.total_y//self.grid_len) x
print(self.node_list[node_index])
my_grid = Grid(100,100,5)
print(my_grid.return_node_at_given_x_y(8,6))
#print(my_grid.node_list)
Я надеюсь, что это то, что вы искали. Вы можете изменить размер вашего базового квадрата или сеток при создании объекта. Grid(200,200,2)
будет иметь grid_size 2 и размер квадрата 200×200.