核心¶
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_FloatParsableManimColor表示所有在 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
- 返回类型: