mirror of
https://github.com/3b1b/manim.git
synced 2025-04-13 09:47:07 +00:00
Have DecimalMobject save pre-generated characters
This commit is contained in:
parent
763967281f
commit
93f3c6535f
1 changed files with 10 additions and 5 deletions
|
@ -46,6 +46,7 @@ class DecimalNumber(VMobject):
|
|||
self.edge_to_fix = edge_to_fix
|
||||
self.font_size = font_size
|
||||
self.text_config = dict(text_config)
|
||||
self.char_to_mob_map = dict()
|
||||
|
||||
super().__init__(
|
||||
color=color,
|
||||
|
@ -62,14 +63,11 @@ class DecimalNumber(VMobject):
|
|||
self.set_submobjects([])
|
||||
self.text_config["font_size"] = self.get_font_size()
|
||||
num_string = self.num_string = self.get_num_string(number)
|
||||
self.add(*(
|
||||
Text(ns, **self.text_config)
|
||||
for ns in num_string
|
||||
))
|
||||
self.add(*map(self.char_to_mob, num_string))
|
||||
|
||||
# Add non-numerical bits
|
||||
if self.show_ellipsis:
|
||||
dots = Text("...", **self.text_config)
|
||||
dots = self.char_to_mob("...")
|
||||
dots.arrange(RIGHT, buff=2 * dots[0].get_width())
|
||||
self.add(dots)
|
||||
if self.unit is not None:
|
||||
|
@ -111,6 +109,13 @@ class DecimalNumber(VMobject):
|
|||
num_string = num_string.replace("-", "–")
|
||||
return num_string
|
||||
|
||||
def char_to_mob(self, char: str) -> Tex | Text:
|
||||
if char not in self.char_to_mob_map:
|
||||
self.char_to_mob_map[char] = Text(char, **self.text_config)
|
||||
result = self.char_to_mob_map[char].copy()
|
||||
result.scale(self.get_font_size() / result.font_size)
|
||||
return result
|
||||
|
||||
def init_uniforms(self) -> None:
|
||||
super().init_uniforms()
|
||||
self.uniforms["font_size"] = self.font_size
|
||||
|
|
Loading…
Add table
Reference in a new issue