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.0 到 1.0 之间。这样做是为了减少颜色不一致性,因为整数和浮点数之间的频繁类型转换会引入误差。
该类可以接受
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
传递字符串时请务必小心:这可能会给颜色处理带来很大的开销。如果您想解析颜色列表,请使用
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()
- 参数:
value (ParsableManimColor | None) – 颜色的某种表示(例如,字符串或合适的元组)。默认值
None
为BLACK
。alpha (浮点数) – 颜色的不透明度。默认情况下,颜色是完全不透明的(值为 1.0)。
方法
返回两种颜色中的一种,浅色或深色(默认为白色或黑色),与当前颜色形成对比(取决于其亮度)。
返回一个比当前颜色更暗的新颜色,即与
BLACK
进行插值后的颜色。从十六进制字符串创建
ManimColor
。从 HSL 数组创建
ManimColor
。从 HSV 数组创建
ManimColor
。从 RGB 数组创建 ManimColor。
从 RGBA 数组创建 ManimColor。
此方法目前未实现。
在当前
ManimColor
和给定ManimColor
之间进行插值,并返回结果。将当前颜色转换为由
class_type
指定的不同颜色空间,而不改变_internal_value
。返回此
ManimColor
的新线性反转版本(无原地更改)。返回一个比当前颜色更亮的新颜色,即与
WHITE
进行插值后的颜色。创建一个具有给定不透明度和与之前相同颜色值的新
ManimColor
。将一种颜色解析为
ManimColor
,或将颜色序列解析为ManimColor
列表。将
ManimColor
转换为颜色的十六进制表示。将
ManimColor
转换为 HSL 数组。将
ManimColor
转换为 HSV 数组。将当前
ManimColor
转换为整数 RGB 数组。将当前 ManimColor 转换为整数 RGBA 数组。
将当前
ManimColor
转换为整数 RGBA 数组。将当前
ManimColor
转换为整数。将当前
ManimColor
转换为浮点数 RGB 数组。将当前
ManimColor
转换为浮点数 RGBA 数组。将当前
ManimColor
转换为浮点数 RGBA 数组。- classmethod _construct_from_space(_space)[source]¶
此函数用作通过内部值构造颜色的代理。子类可以使用它来通过内部值格式挂钩新对象的构造。
- 参数:
_space (ndarray[tuple[整数, ...], dtype[ManimFloat]] | tuple[浮点数, 浮点数, 浮点数] | tuple[浮点数, 浮点数, 浮点数, 浮点数])
- 返回类型:
自身
- classmethod _from_internal(value)[source]¶
此方法旨在由
ManimColor
的子类型自定义颜色空间类覆盖。此方法通过将内部格式
[r,g,b,a]
中的值转换为自定义类构造函数可以理解的格式来构造给定类的新对象。请参阅HSV
以获取示例。- 参数:
value (ManimColorInternal)
- 返回类型:
自身
- static _internal_from_hex_string(hex_, alpha)[source]¶
将十六进制字符串转换为
ManimColor
内部表示的内部函数。警告
这不接受十六进制字符串前面的任何前缀,如 # 或类似符号。这仅适用于原始十六进制部分。
仅供内部使用
- 参数:
hex – 要解析的十六进制字符串。
alpha (浮点数) – 用于颜色的 Alpha 值,如果颜色只有 3 个字节长。否则,如果颜色有 4 个字节长,则此参数将不被使用。
hex_ (字符串)
- 返回:
内部颜色表示
- 返回类型:
- static _internal_from_int_rgb(rgb, alpha=1.0)[source]¶
将整数 RGB 元组转换为
ManimColor
内部表示的内部函数。仅供内部使用
- 参数:
rgb (RGB_Tuple_Int) – 要解析的整数 RGB 元组
alpha (浮点数) – 可选的 Alpha 值。默认值为 1.0。
- 返回:
内部颜色表示。
- 返回类型:
- static _internal_from_int_rgba(rgba)[source]¶
将整数 RGBA 元组转换为
ManimColor
内部表示的内部函数。仅供内部使用
- 参数:
rgba (RGBA_Tuple_Int) – 要解析的整数 RGBA 元组。
- 返回:
内部颜色表示。
- 返回类型:
- static _internal_from_rgb(rgb, alpha=1.0)[source]¶
将浮点数 RGB 元组转换为
ManimColor
内部表示的内部函数。仅供内部使用
- 参数:
rgb (RGB_Tuple_Float) – 要解析的浮点数 RGB 元组。
alpha (浮点数) – 可选的 Alpha 值。默认值为 1.0。
- 返回:
内部颜色表示。
- 返回类型:
- static _internal_from_rgba(rgba)[source]¶
将浮点数 RGBA 元组转换为
ManimColor
内部表示的内部函数。仅供内部使用
- 参数:
rgba (RGBA_Tuple_Float) – 要解析的整数 RGBA 元组。
- 返回:
内部颜色表示。
- 返回类型:
- static _internal_from_string(name, alpha)[source]¶
将字符串转换为
ManimColor
内部表示的内部函数。这不用于十六进制字符串:请参阅_internal_from_hex()
以获取此功能。仅供内部使用
- 参数:
name (字符串) – 要解析为颜色的颜色名称。请参阅文档页面中的不同颜色模块以查找相应的颜色名称。
alpha (浮点数)
- 返回:
内部颜色表示。
- 返回类型:
- 抛出:
ValueError – 如果颜色名称在 Manim 中不存在。
- property _internal_space: ndarray[tuple[整数, ...], dtype[ManimFloat]]¶
这是一个只读属性,它是颜色空间操作的自定义表示。它用于运算符,并可在实现自定义颜色空间时使用。
- property _internal_value: ManimColorInternal¶
返回当前 Manim 颜色
[r,g,b,a]
浮点数组的内部值。- 返回:
内部颜色表示。
- 返回类型:
- contrasting(threshold=0.5, light=None, dark=None)[source]¶
返回两种颜色中的一种,浅色或深色(默认为白色或黑色),与当前颜色形成对比(取决于其亮度)。这通常用于设置与当前背景色形成对比的文本颜色,以确保其可读性。
- 参数:
threshold (浮点数) – 亮度阈值,它决定当前颜色被认为是浅色还是深色(从而分别返回深色或浅色)。默认值为 0.5。
light (自身 | None) – 如果当前颜色被认为是深色,则返回的浅色。默认值为
None
:在这种情况下,将返回纯WHITE
。dark (自身 | None) – 如果当前颜色被认为是浅色,则返回的深色。默认值为
None
:在这种情况下,将返回纯BLACK
。
- 返回:
对比色
ManimColor
。- 返回类型:
- darker(blend=0.2)[source]¶
返回一个比当前颜色更暗的新颜色,即与
BLACK
进行插值后的颜色。不透明度不变。- 参数:
blend (浮点数) – 插值的混合比例,从 0.0(当前颜色不变)到 1.0(纯黑色)。默认值为 0.2,这会使颜色稍微变暗。
- 返回:
较暗的
ManimColor
。- 返回类型:
另请参阅
- classmethod from_hex(hex_str, alpha=1.0)[source]¶
从十六进制字符串创建
ManimColor
。- 参数:
hex_str (字符串) – 要转换的十六进制字符串。此字符串允许的前缀是
#
和0x
。目前,此方法仅支持 6 个半字节,即仅支持#XXXXXX
或0xXXXXXX
格式的字符串。alpha (浮点数) – 用于十六进制字符串的 Alpha 值。默认值为 1.0。
- 返回:
由十六进制字符串表示的
ManimColor
。- 返回类型:
- classmethod from_hsl(hsl, alpha=1.0)[source]¶
从 HSL 数组创建
ManimColor
。- 参数:
hsl (HSL_Array_Float | HSL_Tuple_Float) – 包含 3 个 0.0 到 1.0 之间浮点数的任何可迭代对象。
alpha (浮点数) – 要使用的 Alpha 值。默认值为 1.0。
- 返回:
具有与给定 HSL 数组对应的 RGB 值的
ManimColor
。- 返回类型:
- classmethod from_hsv(hsv, alpha=1.0)[source]¶
从 HSV 数组创建
ManimColor
。- 参数:
hsv (HSV_Array_Float | HSV_Tuple_Float) – 包含 3 个 0.0 到 1.0 之间浮点数的任何可迭代对象。
alpha (浮点数) – 要使用的 Alpha 值。默认值为 1.0。
- 返回:
具有与给定 HSV 数组对应的 RGB 值的
ManimColor
。- 返回类型:
- classmethod from_rgb(rgb, alpha=1.0)[source]¶
从 RGB 数组创建 ManimColor。自动决定它是
int
类型还是float
类型。警告
请确保如果您想要整数,则您的元素不是浮点数。
5.0
将导致输入被解释为 RGB 浮点数组,其值为5.0
而不是整数5
。- 参数:
rgb (RGB_Array_Float | RGB_Tuple_Float | RGB_Array_Int | RGB_Tuple_Int) – 包含 3 个浮点数或 3 个整数的任何可迭代对象。
alpha (浮点数) – 颜色中要使用的 Alpha 值。默认值为 1.0。
- 返回:
与给定
rgb
对应的ManimColor
。- 返回类型:
- classmethod from_rgba(rgba)[source]¶
从 RGBA 数组创建 ManimColor。自动决定它是
int
类型还是float
类型。警告
请确保如果您想要整数,则您的元素不是浮点数。
5.0
将导致输入被解释为浮点数 RGB 数组,其值为5.0
而不是整数5
。- 参数:
rgba (RGBA_Array_Float | RGBA_Tuple_Float | RGBA_Array_Int | RGBA_Tuple_Int) – 包含 4 个浮点数或 4 个整数的任何可迭代对象。
- 返回:
与给定
rgba
对应的ManimColor
。- 返回类型:
- static gradient(colors, length)[source]¶
此方法目前未实现。请暂时参考
color_gradient()
以获取可用的实现。- 参数:
colors (列表[ManimColor])
length (整数)
- 返回类型:
ManimColor | 列表[ManimColor]
- interpolate(other, alpha)[source]¶
在当前
ManimColor
和给定ManimColor
之间进行插值,并返回结果。- 参数:
other (自身) – 用于插值的另一个
ManimColor
。alpha (浮点数) – RGBA 颜色空间中连接两种颜色的线上的一个点,即插值点。0.0 对应于当前
ManimColor
,1.0 对应于另一个ManimColor
。
- 返回:
插值后的
ManimColor
。- 返回类型:
- into(class_type)[source]¶
将当前颜色转换为由
class_type
指定的不同颜色空间,而不改变_internal_value
。- 参数:
class_type (类型[ManimColorT]) – 用于转换的类。它必须是
ManimColor
的子类,并且遵循 HSV、RGBA 等规范。- 返回:
类型为
class_type
的新颜色对象,其_internal_value
与原始颜色相同。- 返回类型:
- invert(with_alpha=False)[source]¶
返回此
ManimColor
的新线性反转版本(无原地更改)。- 参数:
with_alpha (布尔值) –
如果为
True
,则 Alpha 值也会反转。默认值为False
。注意
设置
with_alpha=True
可能会导致意外行为,即对象因为其新的 Alpha 值突然变为 0 或非常低而无法显示。- 返回:
线性反转的
ManimColor
。- 返回类型:
- lighter(blend=0.2)[source]¶
返回一个比当前颜色更亮的新颜色,即与
WHITE
进行插值后的颜色。不透明度不变。- 参数:
blend (浮点数) – 插值的混合比例,从 0.0(当前颜色不变)到 1.0(纯白色)。默认值为 0.2,这会使颜色稍微变亮。
- 返回:
较亮的
ManimColor
。- 返回类型:
另请参阅
- opacity(opacity)[source]¶
创建一个具有给定不透明度和与之前相同颜色值的新
ManimColor
。- 参数:
opacity (浮点数) – 要使用的新不透明度值。
- 返回:
具有相同颜色值和新不透明度的新
ManimColor
。- 返回类型:
- classmethod parse(color: ParsableManimColor | None, alpha: 浮点数 = 1.0) 自身 [source]¶
- classmethod parse(color: Sequence[ParsableManimColor], alpha: 浮点数 = 1.0) 列表[自身]
将一种颜色解析为
ManimColor
,或将颜色序列解析为ManimColor
列表。- 参数:
color – 要解析的颜色或颜色列表。请注意,此函数不接受元组:它将假定您指的是
Sequence[ParsableManimColor]
并返回list[ManimColor]
。alpha – 用于所传递颜色(S)的 Alpha(不透明度)值。
- 返回:
取决于输入,可以是颜色列表或单一颜色。
- 返回类型:
ManimColor | 列表[ManimColor]
- to_hex(with_alpha=False)[source]¶
将
ManimColor
转换为颜色的十六进制表示。- 参数:
with_alpha (布尔值) – 如果为
True
,则在十六进制字符串后附加 2 个额外字符,表示颜色在 0 到 255 之间的 Alpha 值。默认值为False
。- 返回:
一个以
#
开头的十六进制字符串,根据with_alpha
参数,它有 6 或 8 个半字节。默认情况下,它有 6 个半字节,即#XXXXXX
。- 返回类型:
字符串
- to_hsl()[source]¶
将
ManimColor
转换为 HSL 数组。注意
请注意:这会返回一个
[h, s, l]
形式的数组,其中元素是浮点数。这可能会令人困惑,因为 RGB 也可以是浮点数数组。您可能希望通过将 HSL 数组变量类型标注为HSL_Array_Float
来区分它们与 RGB 数组,从而在代码中注释此函数的用法。- 返回:
一个包含 3 个 0.0 到 1.0 之间浮点数的 HSL 数组。
- 返回类型:
- to_hsv()[source]¶
将
ManimColor
转换为 HSV 数组。注意
请注意:这会返回一个
[h, s, v]
形式的数组,其中元素是浮点数。这可能会令人困惑,因为 RGB 也可以是浮点数数组。您可能希望通过将 HSV 数组变量类型标注为HSV_Array_Float
来区分它们与 RGB 数组,从而在代码中注释此函数的用法。- 返回:
一个包含 3 个 0.0 到 1.0 之间浮点数的 HSV 数组。
- 返回类型:
- to_int_rgb()[source]¶
将当前
ManimColor
转换为整数 RGB 数组。- 返回:
一个包含 3 个 0 到 255 之间整数的 RGB 数组。
- 返回类型:
- to_int_rgba_with_alpha(alpha)[source]¶
将当前
ManimColor
转换为整数 RGBA 数组。这类似于to_int_rgba()
,但您可以更改 Alpha 值。- 参数:
alpha (浮点数) – 用于返回值的 Alpha 值。传递 0.0 到 1.0 之间的浮点数:它将自动缩放到 0 到 255 之间的整数。
- 返回:
一个包含 4 个 0 到 255 之间整数的 RGBA 数组。
- 返回类型:
- to_integer()[source]¶
将当前
ManimColor
转换为整数。警告
这将只返回颜色的 RGB 部分。
- 返回:
颜色的整数表示。
- 返回类型:
整数
- to_rgb()[source]¶
将当前
ManimColor
转换为浮点数 RGB 数组。- 返回:
一个包含 3 个 0.0 到 1.0 之间浮点数的 RGB 数组。
- 返回类型:
- to_rgba()[source]¶
将当前
ManimColor
转换为浮点数 RGBA 数组。- 返回:
一个包含 4 个 0.0 到 1.0 之间浮点数的 RGBA 数组。
- 返回类型:
- to_rgba_with_alpha(alpha)[source]¶
将当前
ManimColor
转换为浮点数 RGBA 数组。这类似于to_rgba()
,但您可以更改 Alpha 值。- 参数:
alpha (浮点数) – 用于返回值的 Alpha 值。
- 返回:
一个包含 4 个 0.0 到 1.0 之间浮点数的 RGBA 数组。
- 返回类型: