不二如是 发表于 2022-12-14 19:29:36

13 - 各种颜色玩法

本帖最后由 不二如是 于 2022-12-16 18:45 编辑

这节课我们看如何在 Manim 中进行颜色修改。

重点:


[*]十六进制+set_color
[*]rgb_to_color()
[*]hex_to_rgb()
[*]rgb_to_hex()
[*]HSL()


十六进制

Manim 中默认支持 16 进制的颜色写法,缩写也可以。

可以直接通过 color 参数设置,也可以通过 set_color() 设置颜色:

      color1 = "#2ebb96"
      color2 = "#3AF"

      circle = Dot(color=color1).scale(3)
      text = Text("FishC")
      text.set_color(color2)
      self.add(circle, text)
效果:



color1 是完成的十六进制颜色写法,color2 是缩写。

如果相邻两位相同 AABBCC 这种,就可以写成 #ABC。

可以通过 hex_to_rgb() 将十六进制转成 RGB 数据:

hex_to_rgb("#2AF")
输出:


反之通过 rgb_to_hex() 可以将 RGB 转成十六进制:

rgb_to_hex()
结果就是 #22aaff。


RGB

RGB 三原色可以用数组表示 rgb_to_color):

color3 = rgb_to_color()
      circle = Dot(color=color3).scale(3)
效果:



列表中第一位表示 0.8*RED 的红色,依次是 1*GREEN 和 0*BLUE。


HSL

如果需要 HSL 格式,可以这么用:

from colour import Color

def HSL(hue,saturation,lightness=0.5):
    return Color(hsl=(hue,saturation,lightness))

myGreen = HSL(120/360)

circle.set_color(myGreen)
需要依赖 Color 模块才行,大家按需使用~

此外 Manim 中默认也有一些颜色,大家可以直接调用:



_A,_B 这些表示明亮度,不指定的话,默认都是 _C。

好啦,Manim 中所有玩法操作就是这样了。

Mike_python小 发表于 2022-12-16 09:08:37

沉迷 Manim

hornwong 发表于 2022-12-16 13:29:34

沉迷 Manim
页: [1]
查看完整版本: 13 - 各种颜色玩法