mirror of
https://github.com/3b1b/manim.git
synced 2025-08-05 16:49:03 +00:00
Fixed (most) uses of cmp functions for sorting
This commit is contained in:
parent
7f3b1e624d
commit
b04bddf35b
10 changed files with 29 additions and 23 deletions
|
@ -71,10 +71,9 @@ class IntroducePokerHand(PiCreatureScene, SampleSpaceScene):
|
|||
card.set_height(community_cards.get_height())
|
||||
|
||||
selected_community_cards = VGroup(*[card for card in community_cards if card.numerical_value >= 10])
|
||||
card_cmp = lambda c1, c2 : cmp(
|
||||
c1.numerical_value, c2.numerical_value
|
||||
selected_community_cards.submobjects.sort(
|
||||
key=lambda c: c.numerical_value
|
||||
)
|
||||
selected_community_cards.submobjects.sort(card_cmp)
|
||||
|
||||
selected_community_cards.save_state()
|
||||
for card in selected_community_cards:
|
||||
|
@ -84,7 +83,9 @@ class IntroducePokerHand(PiCreatureScene, SampleSpaceScene):
|
|||
you.hand.target,
|
||||
[c.target for c in selected_community_cards]
|
||||
))
|
||||
straight_cards.submobjects.sort(card_cmp)
|
||||
straight_cards.submobjects.sort(
|
||||
key=lambda c: c.numerical_value
|
||||
)
|
||||
straight_cards.arrange_submobjects(RIGHT, buff = SMALL_BUFF)
|
||||
straight_cards.next_to(community_cards, UP, aligned_edge = LEFT)
|
||||
you.hand.target.shift(MED_SMALL_BUFF*UP)
|
||||
|
|
|
@ -829,10 +829,7 @@ class Mobject(Container):
|
|||
|
||||
def sort_submobjects(self, point_to_num_func=lambda p: p[0]):
|
||||
self.submobjects.sort(
|
||||
lambda *mobs: cmp(*[
|
||||
point_to_num_func(mob.get_center())
|
||||
for mob in mobs
|
||||
])
|
||||
key=lambda m: point_to_num_func(mob.get_center())
|
||||
)
|
||||
return self
|
||||
|
||||
|
|
|
@ -2655,7 +2655,7 @@ class SearchSpacePerimeterVsArea(EquationSolver2d):
|
|||
alt_path_parts = path_parts.copy()
|
||||
size = lambda m : m.get_height() + m.get_width()
|
||||
alt_path_parts.submobjects.sort(
|
||||
lambda m1, m2 : -cmp(size(m1), size(m2))
|
||||
key=lambda m1: -size(m1)
|
||||
)
|
||||
|
||||
full_rect = SurroundingRectangle(
|
||||
|
|
|
@ -2011,7 +2011,7 @@ class VennDiagramProofByContradiction(Scene):
|
|||
else:
|
||||
rejected.append((x, y))
|
||||
rejected.sort(
|
||||
lambda (x1, y1), (x2, y2) : (x2**2 + y2**2) - (x1**2 + y1**2)
|
||||
kay=lambda (x, y): (x**2 + y**2)
|
||||
)
|
||||
for i in range(len(photons) - len(pairs)):
|
||||
pairs.append(rejected.pop())
|
||||
|
|
|
@ -21,7 +21,9 @@ class Jewel(VMobject):
|
|||
self.set_height(self.height)
|
||||
self.rotate(-np.pi/2-np.pi/24, RIGHT)
|
||||
self.rotate(-np.pi/12, UP)
|
||||
self.submobjects.sort(lambda m1, m2 : cmp(-m1.get_center()[2], -m2.get_center()[2]))
|
||||
self.submobjects.sort(
|
||||
key=lambda m: -m1.get_center()[2]
|
||||
)
|
||||
return self
|
||||
|
||||
class Necklace(VMobject):
|
||||
|
@ -210,7 +212,11 @@ class IntroduceStolenNecklaceProblem(ThreeDScene):
|
|||
self.shuffle_jewels(jewels)
|
||||
self.play(FadeOut(self.title))
|
||||
for jewel_type, label in zip(jewel_types, enumeration_labels):
|
||||
jewel_type.submobjects.sort(lambda m1, m2: cmp(m1.get_center()[0], m2.get_center()[0]))
|
||||
jewel_type.submobjects.sort(
|
||||
key=
|
||||
y=lambda m: m1.get
|
||||
)
|
||||
)
|
||||
jewel_type.save_state()
|
||||
jewel_type.generate_target()
|
||||
jewel_type.target.arrange_submobjects()
|
||||
|
@ -1298,7 +1304,9 @@ class MakeTwoJewelCaseContinuous(IntroduceStolenNecklaceProblem):
|
|||
enumeration_labels.to_edge(UP)
|
||||
|
||||
for jewel_type, label in zip(jewel_types, enumeration_labels):
|
||||
jewel_type.submobjects.sort(lambda m1, m2: cmp(m1.get_center()[0], m2.get_center()[0]))
|
||||
jewel_type.submobjects.sort(
|
||||
key=key=lambda mettr()[0]
|
||||
|
||||
jewel_type.save_state()
|
||||
jewel_type.generate_target()
|
||||
jewel_type.target.arrange_submobjects()
|
||||
|
@ -1352,7 +1360,7 @@ class MakeTwoJewelCaseContinuous(IntroduceStolenNecklaceProblem):
|
|||
self.add(chain, jewels)
|
||||
|
||||
jewels.submobjects.sort(
|
||||
lambda m1, m2 : cmp(m1.get_center()[0], m2.get_center()[0])
|
||||
key=lambda m: m.get_center()[0]
|
||||
)
|
||||
remaining_indices = list(range(len(jewels)))
|
||||
remaining_indices.remove(example_index)
|
||||
|
@ -1362,7 +1370,7 @@ class MakeTwoJewelCaseContinuous(IntroduceStolenNecklaceProblem):
|
|||
self.remove(chain)
|
||||
segments = VGroup(example_segment[0], *remaining_segments)
|
||||
segments.submobjects.sort(
|
||||
lambda m1, m2 : cmp(m1.get_center()[0], m2.get_center()[0])
|
||||
key=lambda m: m.get_center()[0]
|
||||
)
|
||||
segment_types = VGroup(*[
|
||||
VGroup(*[m for m in segments if m.get_color() == Color(color)])
|
||||
|
|
|
@ -2365,7 +2365,7 @@ class IntroduceCurl(IntroduceVectorField):
|
|||
**self.vector_field_config
|
||||
)
|
||||
vector_field.submobjects.sort(
|
||||
lambda v1, v2: cmp(v1.get_length(), v2.get_length())
|
||||
key=lambda v: v.get_length()
|
||||
)
|
||||
|
||||
self.play(LaggedStart(GrowArrow, vector_field))
|
||||
|
@ -2459,8 +2459,8 @@ class ShearCurl(IntroduceCurl):
|
|||
vector_field = self.vector_field = VectorField(
|
||||
self.func, **self.vector_field_config
|
||||
)
|
||||
vector_field.submobjects.sort(
|
||||
lambda a1, a2: cmp(a1.get_length(), a2.get_length())
|
||||
vector_field.submobjects.key=sort(
|
||||
key=lambda a: a.get_length()
|
||||
)
|
||||
self.play(LaggedStart(GrowArrow, vector_field))
|
||||
|
||||
|
@ -2951,7 +2951,7 @@ class IllustrateGaussMagnetic(IllustrateGaussLaw):
|
|||
self.func, **self.vector_field_config
|
||||
)
|
||||
vector_field.submobjects.sort(
|
||||
lambda a1, a2: -cmp(a1.get_length(), a2.get_length())
|
||||
key=lambda a: -a1.get_length()
|
||||
)
|
||||
self.play(LaggedStart(GrowArrow, vector_field))
|
||||
self.add_foreground_mobjects(
|
||||
|
|
|
@ -1544,7 +1544,7 @@ class PowerRuleAlgebra(Scene):
|
|||
xs_copy.generate_target()
|
||||
target_list = [dx_copy.target] + list(xs_copy.target)
|
||||
target_list.sort(
|
||||
lambda m1, m2 : cmp(m1.get_center()[0], m2.get_center()[0])
|
||||
key=lambda m: m.get_center()[0]
|
||||
)
|
||||
dots = TexMobject("+", ".", ".", "\\dots")
|
||||
for dot_index, dot in enumerate(dots):
|
||||
|
|
|
@ -649,7 +649,7 @@ class VectorsToDotsScene(VectorScene):
|
|||
run_time = 3
|
||||
)
|
||||
)
|
||||
vectors.sort(lambda v1, v2 : int(np.sign(v2.get_length() - v1.get_length())))
|
||||
vectors.sort(key=lambda v: v.get_length())
|
||||
self.add(*vectors)
|
||||
def v_to_dot(vector):
|
||||
return Dot(vector.get_end(), fill_color = vector.get_stroke_color())
|
||||
|
|
|
@ -1616,7 +1616,7 @@ class HowToTranslateAMatrix(Scene):
|
|||
array.top_brace = Brace(VGroup(array, her_vector), UP)
|
||||
for array in cob_matrix, inv_cob:
|
||||
submobs = array.split()
|
||||
submobs.sort(lambda m1, m2: cmp(m1.get_center()[0], m2.get_center()[0]))
|
||||
submobs.sort(key=lambda m: m.get_center()[0])
|
||||
array.submobjects = submobs
|
||||
her_vector.set_color(MAROON_B)
|
||||
cob_matrix.set_color_by_gradient(BLUE, MAROON_B)
|
||||
|
|
|
@ -689,7 +689,7 @@ class IntroduceElectricField(PiCreatureScene):
|
|||
])
|
||||
shading_list = list(result)
|
||||
shading_list.sort(
|
||||
lambda m1, m2 : cmp(m1.get_length(), m2.get_length())
|
||||
key=lambda m: m1.get_length()
|
||||
)
|
||||
VGroup(*shading_list).set_color_by_gradient(*self.vector_field_colors)
|
||||
result.set_fill(opacity = 0.75)
|
||||
|
|
Loading…
Add table
Reference in a new issue