diff --git a/active_projects/eop/chapter2.py b/active_projects/eop/chapter2.py index ec4c76d1..f3cb0057 100644 --- a/active_projects/eop/chapter2.py +++ b/active_projects/eop/chapter2.py @@ -32,28 +32,59 @@ def print_permutation(index_list): return "".join(perm_list) +class PermutationGrid(Scene): + + def text_box(self, str): + box = TextMobject(str).scale(0.3) + box.add(SurroundingRectangle(box, stroke_color = DARK_GREY)) + return box + def construct(self): -N = 5 -index_list = [] -for i in range(1, N + 1): - index_list.append(i) - for j in range(1, N): - index_list.append(j) - for k in range(1, N - 1): - index_list.append(k) - for l in range(1, N - 2): - index_list.append(l) - for m in range(1, N - 3): - index_list.append(m) - print print_permutation(index_list) + N = 5 + + index_list = [] + perm5_box = VGroup() + for i in range(1, N + 1): + index_list.append(i) + perm4_box = VGroup() + for j in range(1, N): + index_list.append(j) + perm3_box = VGroup() + for k in range(1, N - 1): + index_list.append(k) + perm2_box = VGroup() + for l in range(1, N - 2): + index_list.append(l) + index_list.append(1) + perm_box = self.text_box(print_permutation(index_list)) + if l > 1: + perm_box.next_to(perm2_box[-1], DOWN, buff = 0) + perm2_box.add(perm_box) + index_list.pop() + index_list.pop() + if k > 1: + perm2_box.next_to(perm3_box[-1], RIGHT, buff = 0.08) + perm3_box.add(perm2_box) index_list.pop() + perm3_box.add(SurroundingRectangle(perm3_box, buff = 0.12, stroke_color = LIGHT_GRAY)) + if j > 1: + perm3_box.next_to(perm4_box[-1], DOWN, buff = 0) + perm4_box.add(perm3_box) index_list.pop() + if i > 1: + perm4_box.next_to(perm5_box[-1], RIGHT, buff = 0.16) + perm5_box.add(perm4_box) index_list.pop() - index_list.pop() - index_list.pop() + + perm5_box.move_to(ORIGIN) + self.add(perm5_box) + + + +