[1]:
from manim import *
from manim_geometry import *

config.media_embed = True
config.media_width = "100%"
_RV = "-v WARNING -qm --progress_bar None --disable_caching"
_RI = "-v WARNING -s --progress_bar None --disable_caching"
Manim Community v0.18.0

Tipical problems

Draw arc with strange angles

[2]:
class Problem(Scene):
  def construct(self):
    geos = Geos(self)
    geos.create_geos({
        "dA,dB": GeosVGroup(Dot(LEFT*1.5), Dot(RIGHT*1.5))\
          .rotate(30*DEGREES).shift(DL),
        "nR": geos.distance("dA,dB"),
        "cB": geos.circle("dB,nR"),
      },
      set_all_labels=True,
      label_buff=0,
    )
    self.add(geos.get_all_mobs_as_grp())

%manim $_RV Problem
_images/CHP5_2_0.png
[3]:
class Problem(Scene):
  def construct(self):
    geos = Geos(self)
    geos.create_geos({
        "dA,dB": GeosVGroup(Dot(LEFT*1.5), Dot(RIGHT*1.5))\
          .rotate(30*DEGREES).shift(DL),
        "nR": geos.distance("dA,dB"),
        "cB": geos.circle("dB,nR"),
      },
      set_all_labels=True,
      label_buff=0,
    )
    l1 = Line(LEFT*3, RIGHT*3)
    l2 = l1.copy()
    l1.match_y(geos.dA)
    l2.match_y(geos.dB)
    lAB = Line(geos.dA, geos.dB)
    self.add(geos.get_all_mobs_as_grp())
    self.add(l1, l2, lAB.scale(2))

%manim $_RV Problem
_images/CHP5_3_0.png
[4]:
class Problem(Scene):
  def construct(self):
    geos = Geos(self)
    geos.create_geos({
        "dA,dB": GeosVGroup(Dot(LEFT*1.5), Dot(RIGHT*1.5))\
          .rotate(30*DEGREES).shift(DL),
        "nR": geos.distance("dA,dB"),
        "cB": geos.circle("dB,nR"),
        "oBA": geos.angle2dots("dB,dA"),
        "aB": geos.arc("dB", "nR", "oBA", -30*DEGREES),
      },
      set_all_labels=True,
      label_buff=0,
    )
    self.add(geos.get_all_mobs_as_grp())

%manim $_RV Problem
_images/CHP5_4_0.png
[5]:
class Problem(Scene):
  def construct(self):
    geos = Geos(self)
    geos.create_geos({
        "dA,dB": GeosVGroup(Dot(LEFT*1.5), Dot(RIGHT*1.5))\
          .rotate(30*DEGREES).shift(DL),
        "nR": geos.distance("dA,dB"),
        "cB": geos.circle("dB,nR"),
        "oAB": geos.angle2dots("dA,dB", sum_angle=PI),
        "aB": geos.arc("dB", "nR", "oAB", -30*DEGREES),
      },
      set_all_labels=True,
      label_buff=0,
    )
    self.add(geos.get_all_mobs_as_grp())

%manim $_RV Problem
_images/CHP5_5_0.png

Draw parallel dot

[6]:
class Example(Scene):
  def construct(self):
    geos = Geos(self)
    geos.create_geos({
        "dA": Dot(LEFT+UP*2),
        "dB": Dot(-LEFT-UP*2),
        "dC": Dot(RIGHT+UP),
        "dD": geos.parallel_dot("dC", "dA,dB"),
        "lAB,aA": geos.intersection_arc("dA", "dB"),
        "lCD,aC": geos.intersection_arc("dC", "dD", rotated=True),
      },
      set_all_labels=True
    )
    self.add(NumberPlane().fade(0.7))
    self.add(geos.get_all_dots())
    self.add(geos.get_all_labels())

    self.play(DrawArcCompass(geos.lAB, remove_line=False))
    self.play(
      ReplacementTransform(geos.lAB.copy(), geos.lCD),
    )
    self.play(
      DrawArcCompass(geos.lCD, create_line=False, remove_line=False)
    )
    self.play(*map(FadeOut, [geos.lCD, geos.lAB, geos.aA, geos.aC]))

    self.wait()

%manim $_RV Example
[ ]: