mirror of
https://github.com/3b1b/manim.git
synced 2025-08-05 16:49:03 +00:00
Change how DecimalNumber.set_value works so that it's not creating new instances each time
This commit is contained in:
parent
6537258f24
commit
20593d8fa8
1 changed files with 11 additions and 16 deletions
|
@ -21,8 +21,12 @@ class DecimalNumber(VMobject):
|
||||||
|
|
||||||
def __init__(self, number=0, **kwargs):
|
def __init__(self, number=0, **kwargs):
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
self.set_submobjects_from_number(number)
|
||||||
|
self.init_colors()
|
||||||
|
|
||||||
|
def set_submobjects_from_number(self, number):
|
||||||
self.number = number
|
self.number = number
|
||||||
self.initial_config = kwargs
|
self.set_submobjects([])
|
||||||
|
|
||||||
if isinstance(number, complex):
|
if isinstance(number, complex):
|
||||||
formatter = self.get_complex_formatter()
|
formatter = self.get_complex_formatter()
|
||||||
|
@ -70,9 +74,6 @@ class DecimalNumber(VMobject):
|
||||||
if self.unit and self.unit.startswith("^"):
|
if self.unit and self.unit.startswith("^"):
|
||||||
self.unit_sign.align_to(self, UP)
|
self.unit_sign.align_to(self, UP)
|
||||||
|
|
||||||
# Styling
|
|
||||||
self.init_colors()
|
|
||||||
|
|
||||||
if self.include_background_rectangle:
|
if self.include_background_rectangle:
|
||||||
self.add_background_rectangle()
|
self.add_background_rectangle()
|
||||||
|
|
||||||
|
@ -122,18 +123,12 @@ class DecimalNumber(VMobject):
|
||||||
"i"
|
"i"
|
||||||
])
|
])
|
||||||
|
|
||||||
def set_value(self, number, **config):
|
def set_value(self, number):
|
||||||
full_config = dict(self.CONFIG)
|
move_to_point = self.get_edge_center(self.edge_to_fix)
|
||||||
full_config.update(self.initial_config)
|
style = self.get_style()
|
||||||
full_config["font_size"] = self.get_font_size()
|
self.set_submobjects_from_number(number)
|
||||||
full_config.update(config)
|
self.move_to(move_to_point, self.edge_to_fix)
|
||||||
new_decimal = DecimalNumber(number, **full_config)
|
self.set_style(**style)
|
||||||
new_decimal.move_to(self, self.edge_to_fix)
|
|
||||||
new_decimal.match_style(self)
|
|
||||||
if self.is_fixed_in_frame:
|
|
||||||
new_decimal.fix_in_frame()
|
|
||||||
self.set_submobjects(new_decimal.submobjects)
|
|
||||||
self.number = number
|
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def scale(self, scale_factor, **kwargs):
|
def scale(self, scale_factor, **kwargs):
|
||||||
|
|
Loading…
Add table
Reference in a new issue