11 - 图层 & 透明度
本帖最后由 不二如是 于 2022-12-13 18:22 编辑这一节课我们看两个超级简单的概念。
重点:
[*]set_z_index()
[*]set_opacity()
[*]fade()
如果你有经常 p 图,那么本节课对你来说超级容易。
set_z_index()
“图层”概念和我们在编辑软件中的“图层”是一样的,是对象的前后关系。
默认 z_index 的值为 0,所以数字越大越靠前,就会“挡”住数字小的对象。
我们先默认创建多个对象:
rect = Rectangle(width=2, height=3, fill_color=BLUE, fill_opacity=1)
circle = Circle(radius=1.5, fill_color=RED, fill_opacity=1)
text = Text("FishC", font_size=100)
self.add(rect, circle, text)
效果:
默认矩形在最后,然后是圆形,字体在最前面。
如果想指定图形背景色一定要额外加上 fill_opacity 属性指定透明度为 1,即不透明。
我们通过 set_z_index() 来调整图层,让矩形在前最前,然后是圆形,文字在最后:
text.set_z_index(1)
circle.set_z_index(2)
rect.set_z_index(3)
效果:
set_z_index() 值越大就越靠前。
set_opacity()
set_opacity() 属性设置不透明度。
该属性值介于 0 到 1 之间。
如果为 0 即完全透明,1 为完全不透明:
rect = Rectangle(width=2, height=3, fill_color=BLUE, fill_opacity=1)
circle = Circle(radius=1.5, fill_color=RED, fill_opacity=1)
rect.set_opacity(0.6)
circle.set_opacity(0)
效果:
矩形透明度为 0.6 即 60%。
圆形为 0 即完全透明。
相对于 set_opacity() 这样设置绝对数值,fade() 是相对值。
如果 fade(0) 则会使用对象默认的透明度。如果 fade(1) 则完全透明。
就是根据现有透明度来逐步降低:
circle.fade(0.6)
circle.fade(0.5)
效果:
矩形还是保持 set_opacity(0.6)。
圆形 circle.fade(0.6) 先将为 60% 透明度,然后再此基础上降低 50%,变成 0.3 的透明度。
如果删除透明度,那么只能使用 set_opacity()。 Manim 越来越好玩了 Manim 越来越好玩了 Manim 越来越好玩了 Manim 越来越好玩了 Manim 越来越好玩了
页:
[1]