Я использую «Обработка» для создания сетки размером четыре на четыре с указанной шириной и высотой, как показано ниже. Моя конечная цель состоит в том, чтобы иметь возможность проверять, когда пользователь щелкает внутри определенного квадрата. В моем примере ширина и высота будут равны 480 единицам но это в конечном итоге будет расти. Так что я хотел бы делать все по формуле, а не вручную.
Моя первоначальная мысль состояла в том, чтобы получить вершины каждого угла каждого квадрата в сетке, задать для него имя переменной, а затем создать набор условий if
, чтобы проверить, щелкает ли пользователь внутри ограниченной области. Вот что у меня есть.
WIDTH = 480
HEIGHT = 480
rows = [WIDTH * 0.0, WIDTH * 0.25, WIDTH * 0.50, WIDTH * 0.75, WIDTH * 1.00]
columns = [HEIGHT * 0.0, HEIGHT * 0.25, HEIGHT * 0.50, HEIGHT * 0.75, HEIGHT * 1.00]
coordinates = [(i, j) for i in rows for j in columns]
# "coordinates" is a list of tuples of all the vertices:
# [(0.0, 0.0), (0.0, 120.0), (0.0, 240.0), (0.0, 360.0), (0.0, 480.0), (120.0, 0.0), (120.0, 120.0), (120.0, 240.0), (120.0, 360.0), (120.0, 480.0), ...]
Так что я могу получить список кортежей каждой возможной вершины, и теперь я хотел бы назначить их все переменным.
Например, для строки 1, столбца 1 (левый верхний квадрат в сетке) пользователь должен щелкнуть в области меньше (0, 120) and (120, 0)
, но больше (0,0) and (0,0)
. Это вершины, которые приписывают верхний левый квадрат в сетке. Я бы сделал это для каждого квадрата.
Я мог бы дать каждой из этих вершин имя переменной. Например, (0, 0)
может быть vertex_one
, (0, 120)
может быть vertex_two
и так далее. Я знаю, как перебирать список кортежей, но я не знаю, как назначить их изменяющейся строке с именем vertex_n
- где n
представляет номер вершины - во время итерации.
Но я прочитал из этой ветки , что, по-видимому, это не очень хорошая идея. Так что теперь я не знаю, должен ли я просто вводить каждую вершину вручную или есть более программный / автоматический способ сделать это, например, поиск по словарю. Потому что, когда сетка становится больше, мне потребуется вручную набирать еще большее количество вершин, что нежелательно.
Буду признателен за любые идеи и предложения о том, какой подход я должен использовать!