ManimColor

限定名称: manim.utils.color.core.ManimColor

class ManimColor(value, alpha=1.0)[source]

基础:object

颜色的内部表示。

ManimColor 类是用于表示颜色的主要类。 它的内部表示是一个由4个浮点数组成的数组,对应于[r,g,b,a]值,其中r,g,b,a可以在0到1之间。

这样做是为了减少由于在整数和浮点数之间不断转换而引入的错误,从而减少颜色不一致的数量。

该类可以接受任何类型为 ParsableManimColor 的值,即。

ManimColor, int, str, RGB_Tuple_Int, RGB_Tuple_Float, RGBA_Tuple_Int, RGBA_Tuple_Float, RGB_Array_Int, RGB_Array_Float, RGBA_Array_Int, RGBA_Array_Float

ManimColor 本身只接受单一值,并会尽可能直接将其解释为单一颜色。在向 ManimColor 传递字符串时要小心,这可能会给颜色处理带来很大的开销。

如果你想解析一个颜色列表,请使用ManimColor中的parse()函数,该函数假定你将传递一个颜色列表,因此数组不会被解释为单一颜色。

警告

如果你将一个数字数组传递给parse(),它会将该数组中的r,g,b,a数字解释为颜色,因此你会得到一个包含4种颜色的数组,而不是预期的单一颜色。

有关转换行为,请参阅_internal函数以获取更多文档

你可以通过其类方法创建一个ManimColor实例。有关更多信息,请参阅相应的方法。

mycolor = ManimColor.from_rgb((0, 1, 0.4, 0.5))
myothercolor = ManimColor.from_rgb((153, 255, 255))

您还可以在不同的颜色空间之间进行转换:

mycolor_hex = mycolor.to_hex()
myoriginalcolor = ManimColor.from_hex(mycolor_hex).to_hsv()
Parameters:
  • value (ParsableManimColor | None) – 颜色的某种表示(例如,字符串或合适的元组)。默认的 NoneBLACK

  • alpha (float) – 颜色的不透明度。默认情况下,颜色是完全不透明的(值为1.0)。

方法

from_hex

从十六进制字符串创建Manim颜色,允许前缀#和0x

from_hsv

从HSV数组创建一个ManimColor

from_rgb

从RGB数组创建一个ManimColor。

from_rgba

从RGBA数组创建一个ManimColor。

gradient

目前尚未实现,请参考color_gradient()以获取当前可用的实现

interpolate

在当前颜色和给定的ManimColor之间进行插值,并返回插值后的颜色

invert

返回颜色的线性反转版本(不进行原地更改)

parse

处理颜色列表或单个颜色的解析。

to_hex

将manim颜色转换为颜色的十六进制表示

to_hsv

将Manim颜色转换为HSV数组。

to_int_rgb

将当前的ManimColor转换为一个整数rgb数组

to_int_rgba

将当前的ManimColor转换为一个rgba整数数组

to_int_rgba_with_alpha

将当前的ManimColor转换为整数rgba数组,如to_int_rgba(),但你可以更改alpha值。

to_integer

将当前的ManimColor转换为整数

to_rgb

将当前的ManimColor转换为浮点数的rgb数组

to_rgba

将当前的ManimColor转换为浮点数的rgba数组

to_rgba_with_alpha

将当前的ManimColor转换为rgba浮点数数组,如to_rgba(),但你可以更改alpha值。

static _internal_from_hex_string(hex, alpha)[source]

用于将十六进制字符串转换为ManimColor内部表示的内部函数。

警告

这不接受任何前缀,如#或类似的在十六进制字符串前面。 这只是为了原始的十六进制部分

仅供内部使用

Parameters:
  • hex (str) – 要解析的十六进制字符串

  • alpha (float) – 用于颜色的alpha值

Returns:

内部颜色表示

Return type:

ManimColorInternal

static _internal_from_int_rgb(rgb, alpha=1.0)[来源]

用于将整数的rgb元组转换为ManimColor内部表示的内部函数。

仅供内部使用

Parameters:
  • rgb (RGB_Tuple_Int) – 需要解析的整数rgb元组

  • alpha (float, optional) – 可选的alpha值,默认为1.0

Returns:

内部颜色表示

Return type:

ManimColorInternal

static _internal_from_int_rgba(rgba)[来源]

用于将整数rgba元组转换为ManimColor内部表示的内部函数。

仅供内部使用

Parameters:

rgba (RGBA_Tuple_Int) – 需要解析的int rgba元组

Returns:

内部颜色表示

Return type:

ManimColorInternal

static _internal_from_rgb(rgb, alpha=1.0)[来源]

用于将浮点数的rgb元组转换为ManimColor内部表示的内部函数。

仅供内部使用

Parameters:
  • rgb (RGB_Tuple_Float) – 要解析的浮点数rgb元组

  • alpha (float, optional) – 可选的alpha值,默认为1.0

Returns:

内部颜色表示

Return type:

ManimColorInternal

static _internal_from_rgba(rgba)[source]

用于将浮点数的 rgba 元组转换为 ManimColor 内部表示的内部函数。

仅供内部使用

Parameters:

rgba (RGBA_Tuple_Float) – 需要解析的int rgba元组

Returns:

内部颜色表示

Return type:

ManimColorInternal

static _internal_from_string(name)[来源]

用于将字符串转换为ManimColor内部表示的内部函数。 这不适用于十六进制字符串,请参考_internal_from_hex()以获取此功能。

仅供内部使用

Parameters:

name (str) – 要解析为颜色的颜色名称。请参阅文档页面中的不同颜色模块以找到相应的颜色名称。

Returns:

内部颜色表示

Return type:

ManimColorInternal

Raises:

ValueError – 如果颜色名称在manim中不存在,则引发ValueError

property _internal_value: ManimColorInternal

返回当前Manim颜色的内部值[r,g,b,a]浮点数组

Returns:

内部颜色表示

Return type:

ManimColorInternal

classmethod from_hex(hex, alpha=1.0)[source]

从十六进制字符串创建Manim颜色,允许前缀#和0x

Parameters:
  • hex (str) – 要转换的十六进制字符串(目前仅支持6个半字节)

  • alpha (float, optional) – 用于十六进制字符串的alpha值,默认为1.0

Returns:

由十六进制字符串表示的ManimColor

Return type:

ManimColor

classmethod from_hsv(hsv, alpha=1.0)[source]

从HSV数组创建一个ManimColor

Parameters:
  • hsv (HSV_Array_Float | HSV_Tuple_Float) – 任何包含0到1之间浮点数的3元素可迭代对象

  • alpha (float, optional) – 要使用的alpha值,默认为1.0

Returns:

与HSV对应的RGB值的ManimColor

Return type:

ManimColor

classmethod from_rgb(rgb, alpha=1.0)[source]

从RGB数组创建一个ManimColor。自动判断其类型是int还是float。

警告

请确保如果你的元素不是浮点数,如果你想要整数。5.0 将被解释为值为 5.0 的浮点数 rgb 数组,而不是整数 5。

Parameters:
Returns:

返回ManimColor对象

Return type:

ManimColor

classmethod from_rgba(rgba)[source]

从RGBA数组创建一个ManimColor。自动判断其类型是int还是float。

警告

请确保如果希望使用整数,您的元素不是浮点数。5.0 将被解释为值为 5.0 的浮点数 rgb 数组,而不是整数 5。

Parameters:

rgba (RGBA_Array_Float | RGBA_Tuple_Float | RGBA_Array_Int | RGBA_Tuple_Int) – 任何4元素可迭代对象

Returns:

返回ManimColor对象

Return type:

ManimColor

static gradient(colors, length)[source]

目前尚未实现,请参考color_gradient()以获取当前可用的实现

Parameters:
interpolate(other, alpha)[source]

在当前颜色和给定的ManimColor之间进行插值,并返回插值后的颜色

Parameters:
  • 其他 (ManimColor) – 用于插值的其他ManimColor

  • alpha (float) –

    rgba色彩空间中连接两种颜色的线上的一个点,即插值点

    0对应于当前的ManimColor,1对应于另一个ManimColor

Returns:

插值的ManimColor

Return type:

ManimColor

invert(with_alpha=False)[source]

返回颜色的线性反转版本(不进行原地更改)

Parameters:

with_alpha (bool, optional) –

如果为真,alpha值也将被反转,默认为False

注意

这可能会导致意外的行为,即对象不显示,因为它们的alpha值突然变为0或非常低。在将此设置为true时,请记住这一点

Returns:

线性反转的ManimColor

Return type:

ManimColor

classmethod parse(color: ParsableManimColor | None, alpha: float = 1.0) Self[来源]
classmethod parse(color: Sequence[ParsableManimColor], alpha: float = 1.0) list[Self]

处理颜色列表或单个颜色的解析。

Parameters:
  • color – 要解析的颜色或颜色列表。请注意,此函数不能接受rgba元组。它会假设你指的是list[ManimColor],并返回一个ManimColors列表。

  • alpha – 如果传递了单一颜色,则使用该alpha值。或者如果传递了颜色列表,则为所有颜色设置该值。

Returns:

根据输入,可以是颜色列表或单一颜色

Return type:

ManimColor

to_hex(with_alpha=False)[来源]

将manim颜色转换为颜色的十六进制表示

Parameters:

with_alpha (bool, optional) – 将结果从6个值更改为8个值,其中最后2个半字节表示0-255的alpha值,默认情况下为False

Returns:

一个以#开头的十六进制字符串,根据您的输入有6或8个半字节,默认为6,即#XXXXXX

Return type:

字符串

to_hsv()[source]

将Manim颜色转换为HSV数组。

注意

请注意,这将返回一个形式为[h, s, v]的数组,其中元素是浮点数。 这可能会让人困惑,因为rgb也可以是一个浮点数数组,因此你可能希望在代码中通过使用HSV_Array_Float来注释此函数的用法,以区分rgb数组和hsv数组。

Returns:

一个包含3个元素的hsv数组,元素类型为float,范围从0到1

Return type:

HSV_Array_Float

to_int_rgb()[source]

将当前的ManimColor转换为一个整数rgb数组

Returns:

包含3个int类型元素的rgb数组

Return type:

RGB_Array_Int

to_int_rgba()[source]

将当前的ManimColor转换为一个rgba整数数组

Returns:

包含4个int类型元素的rgba数组

Return type:

RGBA_Array_Int

to_int_rgba_with_alpha(alpha)[来源]

将当前的ManimColor转换为一个rgba整数数组,类似于to_int_rgba(),但你可以更改alpha值。

Parameters:

alpha (float) – 用于返回值的alpha值。(将自动从0-1缩放到0-255,因此只需传递0-1)

Returns:

带有4个int类型元素的rgba数组

Return type:

RGBA_Array_Int

to_integer()[source]

将当前的ManimColor转换为整数

Returns:

  • int – 颜色的整数表示

  • .. warning:: – 这将只返回颜色的rgb部分

Return type:

整数

to_rgb()[来源]

将当前的ManimColor转换为浮点数的rgb数组

Returns:

包含3个浮点类型元素的rgb数组

Return type:

RGB_Array_Float

to_rgba()[source]

将当前的ManimColor转换为浮点数的rgba数组

Returns:

包含4个浮点类型元素的rgba数组

Return type:

RGBA_Array_Float

to_rgba_with_alpha(alpha)[source]

将当前的ManimColor转换为rgba浮点数数组,如to_rgba(),但你可以更改alpha值。

Parameters:

alpha (float) – 用于返回值的alpha值

Returns:

具有4个浮点类型元素的rgba数组

Return type:

RGBA_Array_Float