Я хочу установить двумерный прямоугольник с длиной L
и периодом c граничных условий в Python. Один из способов продолжить это исправить систему отсчета в левом нижнем углу, тогда у меня есть:
L = 5 # box length
x, y = 2, 3 # initial values
# step in my algorithm
x = (x + 4) % L
y = (y - 4) % L
И вывод, очевидно, x, y = (1, 4)
. Мы можем гарантировать, что для каждого шага положения частиц будут оставаться внутри блока длины L.
Хорошо, но что если я захочу установить систему отсчета в центре блока? Следующий код, конечно, не работает:
x = (x + 4) % L/2
y = (y - 4) % L/2
Я хочу, чтобы, если частица сбегает со стороны x = + L / 2, она появляется как x = -L / 2 (то же самое для y), но оператор модуля не может справиться с этим так же, как в предыдущем случае.