from manimlib.imports import * class Orthogonal(ThreeDScene): def construct(self): axes = ThreeDAxes() self.play(ShowCreation(axes)) self.move_camera(phi=60*DEGREES,theta=45*DEGREES,run_time=3) text = TextMobject(r"$\hat{i}$",r"$\hat{j}$",r"$\hat{k}$") text[0].move_to(0.7*DOWN+0.8*LEFT) text[1].move_to(0.75*DOWN+0.7*RIGHT) text[2].move_to(0.75*UP+0.4*RIGHT) self.add_fixed_in_frame_mobjects(text) self.play(Write(text)) line1 = Line(start = ORIGIN,end = RIGHT) line1.set_color(DARK_BLUE) tip1 = Polygon(-0.95*LEFT,-0.8*LEFT-0.1*DOWN,-0.8*LEFT-0.1*UP) tip1.set_opacity(1) tip1.set_fill(DARK_BLUE) tip1.set_color(DARK_BLUE) arrow2 = Line(start = ORIGIN,end = UP) arrow2.set_color(DARK_BLUE) tip2 = Polygon(0.95*UP,0.8*UP-0.1*RIGHT,0.8*UP-0.1*LEFT) tip2.set_opacity(1) tip2.set_fill(DARK_BLUE) tip2.set_color(DARK_BLUE) arrow2.set_color(DARK_BLUE) arrow3 = Line(start = ORIGIN,end = [0,0,1]) arrow3.set_color(DARK_BLUE) tip3 = Polygon([0,0,0.95],[0,0,0.8]-0.1*RIGHT,[0,0,0.8]-0.1*LEFT) tip3.set_opacity(1) tip3.set_fill(DARK_BLUE) tip3.set_color(DARK_BLUE) self.play(ShowCreation(line1), ShowCreation(tip1), ShowCreation(arrow2), ShowCreation(tip2), ShowCreation(arrow3), ShowCreation(tip3)) self.wait()