Skip to content

Commit 03f4b14

Browse files
committed
scale stroke_width if font_size is too small or too big
1 parent e5b456e commit 03f4b14

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

manim/animation/creation.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ def construct(self):
9494
from ..animation.animation import Animation
9595
from ..animation.composition import Succession
9696
from ..mobject.mobject import Group, Mobject
97-
from ..mobject.svg.svg_mobject import SVGMobject
9897
from ..mobject.types.vectorized_mobject import VMobject
9998
from ..utils.bezier import integer_interpolate
10099
from ..utils.rate_functions import double_smooth, linear
@@ -303,8 +302,9 @@ class Write(DrawBorderThenFill):
303302
vmobject
304303
The VMobject to animate.
305304
stroke_width
306-
Stroke width for drawing. If not given, for SVG-based mobjects (such as :class:`Text`, :class:`MarkupText`, or :class:`MathTex`)
307-
the stroke width is scaled relative to the font size. Others use 2.0.
305+
Stroke width for drawing. If not provided, it is scaled based on font size
306+
for text-based mobjects when the font is very small or very large;
307+
otherwise defaults to 2.0.
308308
rate_func
309309
The function defining the animation progress.
310310
reverse
@@ -386,10 +386,11 @@ def _adjust_stroke_width_for_text(
386386
) -> float:
387387
if stroke_width is not None:
388388
return stroke_width
389-
if not isinstance(vmobject, SVGMobject):
390-
return 2 # default in DrawBorderThenFill
391389
font_size = getattr(vmobject, "font_size", DEFAULT_FONT_SIZE)
392-
return (font_size / DEFAULT_FONT_SIZE) * DEFAULT_STROKE_WIDTH * scale_factor
390+
if font_size < 20 or font_size > 6 * DEFAULT_FONT_SIZE:
391+
# Assuming the user is using MovingCameraScene and performing a zoom-in or zoom-out
392+
return (font_size / DEFAULT_FONT_SIZE) * DEFAULT_STROKE_WIDTH * scale_factor
393+
return 2 # default in DrawBorderThenFill
393394

394395
def reverse_submobjects(self) -> None:
395396
self.mobject.invert(recursive=True)

0 commit comments

Comments
 (0)