鱼C论坛

 找回密码
 立即注册
查看: 2805|回复: 2

[技术交流] 13 - 各种颜色玩法

[复制链接]
发表于 2022-12-14 19:29:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 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)
效果:

PangoRender_ManimCE_v0.17.1.png

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

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

可以通过 hex_to_rgb() 将十六进制转成 RGB 数据:
hex_to_rgb("#2AF")
输出:
[0.13333333 0.66666667 1.        ]
反之通过 rgb_to_hex() 可以将 RGB 转成十六进制:
rgb_to_hex([0.13333333,0.66666667,1])
结果就是 #22aaff。


RGB

RGB 三原色可以用数组表示 rgb_to_color[RED,GREEN,BLUE]):
color3 = rgb_to_color([0.8, 1, 0])
        circle = Dot(color=color3).scale(3)
效果:

PangoRender_ManimCE_v0.17.1的副本.png

列表中第一位表示 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 中默认也有一些颜色,大家可以直接调用:

2022-12-16_18-39-58.png

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

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

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-16 09:08:37 | 显示全部楼层
沉迷 Manim
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-16 13:29:34 | 显示全部楼层
沉迷 Manim
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 22:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表