Merge pull request #407 from 3b1b/clacks

Clacks
This commit is contained in:
Grant Sanderson 2019-01-17 14:14:15 -08:00 committed by GitHub
commit 3152def8ac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 1212 additions and 28 deletions

File diff suppressed because it is too large Load diff

View file

@ -113,6 +113,17 @@ class Write(DrawBorderThenFill):
else:
self.run_time = 2
class ShowIncreasingSubsets(Animation):
def __init__(self, group, **kwargs):
self.all_submobs = group.submobjects
Animation.__init__(self, group, **kwargs)
def update_mobject(self, alpha):
n_submobs = len(self.all_submobs)
index = int(alpha * n_submobs)
self.mobject.submobjects = self.all_submobs[:index]
# Fading

View file

@ -392,7 +392,10 @@ class Camera(object):
vmobject
)
ctx.set_line_width(
width * self.cairo_line_width_multiple
width * self.cairo_line_width_multiple *
# This ensures lines have constant width
# as you zoom in on them.
(self.get_frame_width() / FRAME_WIDTH)
)
ctx.stroke_preserve()
return self

View file

@ -298,7 +298,7 @@ class TeacherStudentsScene(PiCreatureScene):
"raise_left_hand",
])
kwargs["target_mode"] = target_mode
student = self.get_students()[kwargs.get("student_index", 1)]
student = self.get_students()[kwargs.get("student_index", 2)]
return self.pi_creature_says(
student, *content, **kwargs
)
@ -309,7 +309,7 @@ class TeacherStudentsScene(PiCreatureScene):
)
def student_thinks(self, *content, **kwargs):
student = self.get_students()[kwargs.get("student_index", 1)]
student = self.get_students()[kwargs.get("student_index", 2)]
return self.pi_creature_thinks(student, *content, **kwargs)
def change_all_student_modes(self, mode, **kwargs):

View file

@ -23,6 +23,7 @@ class Arc(VMobject):
"start_angle": 0,
"num_anchors": 9,
"anchors_span_full_range": True,
"arc_center": ORIGIN,
}
def __init__(self, angle, **kwargs):
@ -50,6 +51,7 @@ class Arc(VMobject):
anchors, handles1, handles2
)
self.scale(self.radius, about_point=ORIGIN)
self.shift(self.arc_center)
def add_tip(self, tip_length=0.25, at_start=False, at_end=True):
# clear out any old tips
@ -180,6 +182,14 @@ class Circle(Arc):
np.sqrt(mobject.get_width()**2 + mobject.get_height()**2))
self.scale(buffer_factor)
def get_point_from_angle(self, angle):
start_angle = angle_of_vector(
self.points[0] - self.get_center()
)
return self.point_from_proportion(
(angle - start_angle) / TAU
)
class Dot(Circle):
CONFIG = {

View file

@ -105,7 +105,10 @@ class DecimalNumber(VMobject):
full_config.update(self.initial_config)
full_config.update(config)
new_decimal = DecimalNumber(number, **full_config)
new_decimal.match_height(self)
# new_decimal.match_height(self)
new_decimal.scale(
self[0].get_height() / new_decimal[0].get_height()
)
new_decimal.move_to(self, self.edge_to_fix)
new_decimal.match_style(self)
@ -129,3 +132,6 @@ class Integer(DecimalNumber):
def increment_value(self):
self.set_value(self.get_value() + 1)
def get_value(self):
return int(np.round(super().get_value()))