def construct(self):
    plane = NumberPlane(**self.plane_kwargs)
    plane.main_lines.fade(0.9)
    plane.add(plane.get_axis_labels())
    self.add(plane)
    field2D = VGroup(*[self.calc_field2D(((x * RIGHT) + (y * UP))) for x in np.arange((- 9), 9, 1) for y in np.arange((- 5), 5, 1)])
    field3D = VGroup(*[self.calc_field3D((((x * RIGHT) + (y * UP)) + (z * OUT))) for x in np.arange((- 9), 9, 1) for y in np.arange((- 5), 5, 1) for z in np.arange((- 5), 5, 1)])
    self.play(ShowCreation(field3D))
    self.wait()
    self.move_camera(((0.8 * np.pi) / 2), ((- 0.45) * np.pi))
    self.begin_ambient_camera_rotation()
    self.wait(6)
def construct(self):
    plane = NumberPlane(**self.plane_kwargs)
    plane.main_lines.fade(0.9)
    plane.add(plane.get_axis_labels())
    self.add(plane)
    field2D = VGroup(*[self.calc_field2D(((x * RIGHT) + (y * UP))) for x in np.arange((- 9), 9, 1) for y in np.arange((- 5), 5, 1)])
    field3D = VGroup(*[self.calc_field3D((((x * RIGHT) + (y * UP)) + (z * OUT))) for x in np.arange((- 9), 9, 1) for y in np.arange((- 5), 5, 1) for z in np.arange((- 5), 5, 1)])
    self.play(ShowCreation(field3D))
    self.wait()
    self.move_camera(((0.8 * np.pi) / 2), ((- 0.45) * np.pi))
    self.begin_ambient_camera_rotation()
    self.wait(6)