Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions manim/mobject/types/vectorized_mobject.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
],
)
Expand Down
5 changes: 2 additions & 3 deletions manim/utils/color/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -1408,16 +1408,15 @@ 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
# End edge case
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)
]

Expand Down