diff --git a/manim/mobject/types/vectorized_mobject.py b/manim/mobject/types/vectorized_mobject.py index 791b28bf5a..9422a127d3 100644 --- a/manim/mobject/types/vectorized_mobject.py +++ b/manim/mobject/types/vectorized_mobject.py @@ -167,9 +167,12 @@ def __init__( # fill_color = kwargs["color"] # stroke_color = kwargs["color"] if fill_color is not None: - self.fill_color = ManimColor.parse(fill_color) + self.set_fill(color=ManimColor.parse(fill_color), opacity=self.fill_opacity) if stroke_color is not None: self.stroke_color = ManimColor.parse(stroke_color) + self.set_stroke( + color=ManimColor.parse(stroke_color), opacity=self.stroke_opacity + ) def _assert_valid_submobjects(self, submobjects: Iterable[VMobject]) -> Self: return self._assert_valid_submobjects_internal(submobjects, VMobject) @@ -240,7 +243,7 @@ def generate_rgbas_array( ] rgbas: FloatRGBA_Array = np.array( [ - c.to_rgba_with_alpha(o) + c.to_rgba_with_alpha(c._internal_value[3] * o) for c, o in zip(*make_even(colors, opacities), strict=True) ], ) diff --git a/manim/utils/color/core.py b/manim/utils/color/core.py index 88eaca23b4..bfc1de9168 100644 --- a/manim/utils/color/core.py +++ b/manim/utils/color/core.py @@ -1408,8 +1408,7 @@ def color_gradient( raise ValueError("Expected 1 or more reference colors. Got 0 colors.") if num_colors == 1: return parsed_colors * length_of_output - - rgbs = [color.to_rgb() for color in parsed_colors] + rgbas = [color.to_rgba() for color in parsed_colors] alphas = np.linspace(0, (num_colors - 1), length_of_output) floors = alphas.astype("int") alphas_mod1 = alphas % 1 @@ -1417,7 +1416,7 @@ def color_gradient( alphas_mod1[-1] = 1 floors[-1] = num_colors - 2 return [ - rgb_to_color((rgbs[i] * (1 - alpha)) + (rgbs[i + 1] * alpha)) + rgba_to_color((rgbas[i] * (1 - alpha)) + (rgbas[i + 1] * alpha)) for i, alpha in zip(floors, alphas_mod1, strict=True) ]