核心¶
Manim(内部)的颜色数据结构和一些颜色转换工具。
此模块包含 ManimColor
的实现,该数据结构在内部用于表示颜色。
使用这些颜色的首选方式是从 Manim 导入它们的常量
>>> from manim import RED, GREEN, BLUE
>>> print(RED)
#FC6255
请注意,此方式使用大写颜色名称。
注意
带有 _C
后缀的颜色具有一个别名,该别名等于不带字母的颜色名称。例如,GREEN = GREEN_C
。
自定义色彩空间¶
您好,尊敬的访客。您似乎有兴趣为我们目前不支持的色彩空间实现自定义颜色类。
当前系统使用了一些间接方法来确保与 Manim 中所有其他颜色类型的一致行为。
要实现自定义色彩空间,您必须继承 ManimColor
并实现三个重要方法
_internal_value
:在ManimColor
上实现的@property
,旨在保持一致的内部表示,该表示可供ManimColor
中的其他函数引用。此属性充当您类中所需任何表示的代理。
getter 应该始终以
[r,g,b,a]
格式返回一个 NumPy 数组,与类型ManimColorInternal
一致。setter 应该始终接受
[r,g,b,a]
格式的值,该值可以转换为您需要的任何属性。
_internal_space
:在ManimColor
上实现的只读@property
,旨在提供可供运算符、插值和颜色转换函数使用的有用表示。此值的唯一约束是
它必须是一个 NumPy 数组。
最后一个值必须是介于
0.0
到1.0
范围内的不透明度。此外,您的
__init__
必须支持此格式作为初始化值,不带额外参数,以确保ManimColor
中所有其他方法的正确功能。
_from_internal()
:一个@classmethod
,它将[r,g,b,a]
值转换为适用于您的__init__
方法的参数,并调用cls
参数。
类型别名
- class 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
ParsableManimColor
表示所有在 Manim 中可被解析为ManimColor
的类型。
类型变量
- class ManimColorT¶
TypeVar('ManimColorT', bound=ManimColor)
类
函数
- average_color(*colors)[source]¶
确定给定参数之间的平均颜色。
注意
此操作不考虑颜色的 Alpha 值(不透明度)。生成的颜色具有 1.0 的 Alpha 值或不透明度。
- 返回:
输入颜色的平均值。
- 返回类型:
- 参数:
colors (ParsableManimColor)
- color_gradient(reference_colors, length_of_output)[source]¶
创建一组颜色列表,这些颜色在输入颜色数组之间以特定数量的颜色进行插值。
- 参数:
reference_colors (Sequence[ParsableManimColor]) – 要进行插值或分散的颜色。
length_of_output (int) – 输出应具有的颜色数量,理想情况下应多于输入。
- 返回:
一个
ManimColor
或插值ManimColor
的列表。- 返回类型:
list[ManimColor] | ManimColor
- color_to_int_rgb(color)[source]¶
函数式编程的辅助函数。请参阅
ManimColor.to_int_rgb()
。- 参数:
color (ParsableManimColor) – 要转换为 RGB 整数数组的颜色。
- 返回:
相应的 RGB 整数数组。
- 返回类型:
- color_to_int_rgba(color, alpha=1.0)[source]¶
函数式编程的辅助函数。请参阅
ManimColor.to_int_rgba_with_alpha()
。- 参数:
color (ParsableManimColor) – 要转换为 RGBA 整数数组的颜色。
alpha (float) – 一个介于 0.0 和 1.0 之间的 Alpha 值,用作颜色的不透明度。默认为 1.0。
- 返回:
相应的 RGBA 整数数组。
- 返回类型:
- color_to_rgb(color)[source]¶
函数式编程的辅助函数。请参阅
ManimColor.to_rgb()
。- 参数:
color (ParsableManimColor) – 要转换为 RGB 浮点数组的颜色。
- 返回:
相应的 RGB 浮点数组。
- 返回类型:
- color_to_rgba(color, alpha=1.0)[source]¶
函数式编程的辅助函数。请参阅
ManimColor.to_rgba_with_alpha()
。- 参数:
color (ParsableManimColor) – 要转换为 RGBA 浮点数组的颜色。
alpha (float) – 一个介于 0.0 和 1.0 之间的 Alpha 值,用作颜色的不透明度。默认为 1.0。
- 返回:
相应的 RGBA 浮点数组。
- 返回类型:
- get_shaded_rgb(rgb, point, unit_normal_vect, light_source)[source]¶
根据表面是面向
light_source
还是背离light_source
,为位于给定空间point
处且朝向unit_normal_vect
方向的某个表面的rgb
颜色添加光照或阴影。- 参数:
rgb (RGB_Array_Float) – 浮点数的 RGB 数组。
point (Point3D) – 彩色表面的位置。
unit_normal_vect (Vector3D) – 彩色表面所面对的方向。
light_source (Point3D) – 可能照亮表面的光源位置。
- 返回:
根据彩色表面的方向,添加了光照或阴影的颜色。
- 返回类型:
- hex_to_rgb(hex_code)[source]¶
函数式编程的辅助函数。请参阅
ManimColor.to_rgb()
。- 参数:
hex_code (str) – 表示颜色的十六进制字符串。
- 返回:
表示该颜色的 RGB 数组。
- 返回类型:
- interpolate_color(color1, color2, alpha)[source]¶
用于插值两个 ManimColor 并获取结果的独立函数。请参阅
ManimColor.interpolate()
。- 参数:
color1 (ManimColorT) – 第一个
ManimColor
。color2 (ManimColorT) – 第二个
ManimColor
。alpha (float) – 决定颜色之间插值点的 Alpha 值。
- 返回:
插值后的 ManimColor。
- 返回类型:
- invert_color(color)[source]¶
函数式编程的辅助函数。请参阅
ManimColor.invert()
- 参数:
color (ManimColorT) – 要反转的
ManimColor
。- 返回:
线性反转的
ManimColor
。- 返回类型:
- random_bright_color()[source]¶
返回一个随机亮色:一个与
WHITE
平均后的随机颜色。警告
此操作非常耗费资源。请注意性能损失。
- 返回:
一个随机亮色的
ManimColor
。- 返回类型:
- random_color()[source]¶
返回一个随机的
ManimColor
。警告
此操作非常耗费资源。请注意性能损失。
- 返回:
一个随机的
ManimColor
。- 返回类型:
- rgb_to_color(rgb)[source]¶
函数式编程的辅助函数。请参阅
ManimColor.from_rgb()
。- 参数:
rgb (RGB_Array_Float | RGB_Tuple_Float | RGB_Array_Int | RGB_Tuple_Int) – 一个包含 3 个元素的迭代器。
- 返回:
具有相应值的 ManimColor。
- 返回类型:
- rgb_to_hex(rgb)[source]¶
函数式编程的辅助函数。请参阅
ManimColor.from_rgb()
和ManimColor.to_hex()
。- 参数:
rgb (RGB_Array_Float | RGB_Tuple_Float | RGB_Array_Int | RGB_Tuple_Int) – 一个包含 3 个元素的迭代器。
- 返回:
颜色的十六进制表示。
- 返回类型:
str
- rgba_to_color(rgba)[source]¶
函数式编程的辅助函数。请参阅
ManimColor.from_rgba()
。- 参数:
rgba (RGBA_Array_Float | RGBA_Tuple_Float | RGBA_Array_Int | RGBA_Tuple_Int) – 一个包含 4 个元素的迭代器。
- 返回:
具有相应值的 ManimColor
- 返回类型: