我想确保我用来显示数组的方法对于我不知道的更好方法来说不是一个尴尬的解决方法。到目前为止,我所拥有的很多东西都感觉很尴尬。
对于间距元素,我将 TextMobject 数组的每个元素设置为 .next_to 右侧的前一个元素,并带有缓冲区。有更好的方法吗?
对于元素周围的框,我将分别绘制数组的整个宽度的顶线和底线,然后在元素之间绘制垂直线。我不打算关心以不同方式绘制这些框的动画,尽管我确实计划使用现有工具来突出显示元素。有更好的方法吗?
到目前为止,这是我的“hello world”代码。任何建议/改进都非常受欢迎!
class ExampleArray(Scene):
def construct(self):
n = 6
labels = TextMobject(* ["[" + str(index) + "]" for index in range(n)] )
text = TextMobject( *[str(random.randint(0,10)) for i in range(n) ] )
# space it out
for i in range(1,len(text)):
text[i].next_to(text[i-1], RIGHT, buff = 0.8)
text.move_to(ORIGIN)
for i in range(len(labels)):
labels[i].scale(0.5)
labels[i].next_to( text[i], DOWN, buff = 0.5)
# can I just make a copy of top_line?
top_line = Line(text.get_left() + LEFT, text.get_right() + RIGHT)
bottom_line = Line(text.get_left() + LEFT, text.get_right() + RIGHT)
top_line.next_to(text, UP)
bottom_line.next_to(text, DOWN)
self.add(labels)
self.add(top_line, bottom_line)
for i in range(len(text)):
self.play(Write(text[i]))
self.wait(0.1)