不二如是 发表于 2022-12-15 16:54:16

14 - VMobject 中曲线的 Setxxx 方法大全

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

12 课简单总结了 Mobject 的 Set 和 Get 类方法。

这节课来看 VMobject 曲线中的玩法大全。

重点:


[*]stroe_color
[*]stroke_width
[*]stroke_opacity
[*]fill_color
[*]fill_opacity
[*]set_color()
[*]set_stroke()
[*]set_fill()
[*]set_style()
[*]match_style()
[*]background_stroke_color
[*]background_stroke_width
[*]background_stroke_opacity
[*]set_background_stroke()

注意看上面都是“属性”而非方法。

曲线

我们先来创建一个曲线“圆”:

circle = Circle(
stroke_color=BLUE,
stroke_width=10,
stroke_opacity=0.6,
fill_color=ORANGE,
fill_opacity=0.8
      )
效果:



属性使用方式如上所示。

stroke_color 表示边框颜色,默认是 1/100 个标准宽度。

stroke_width 表示边框宽度,默认是 1/10 个标准单位。

stroke_opacity 表示边框透明 。

fill_orange 表示填充色。

fill_opacity 表示填充透明度。

上面的属性操作,也可以用 set_color(),set_stroke() 来实现。

在上面的设置前提下,我们先用 set_color() 设置:

circle.set_color(PINK)
效果:



会覆盖掉之前的填充色。

接着使用 set_stroke() 来修改边框颜色:

circle.set_stroke(GREEN,3,0.7)
效果:



上面代码中的 set_stroke() 是一个复合写法。

依次表示(颜色,宽度,透明度),也可以拆开来指定。

set_fill() 用来设置填充色,传入颜色和透明度:

set_fill(RED,0.3)
还可以通过 set_style() 综合来设定:

            circle.set_style(
            stroke_color=BLUE,
            stroke_width=10,
            stroke_opacity=0.6,
            fill_color=ORANGE,
            fill_opacity=0.8
      )
跟一开始的直接设定区别不大。

另外也可以通过 match_style() 照搬另一个对象的属性:

cicle.mathc_style(另一个对象)
直接复制属性。

最后几个 background 系列属性相当于设置多层边框,重新创建:

            circle = Circle(
            stroke_color=BLUE,
            stroke_width=10,
            stroke_opacity=0.6,
            background_stroke_color=RED,
            background_stroke_width=30,
            background_stroke_opacity=1
      )
效果:



红色部分就是我们通过 backgroun_stroke_ 系列生成的另一层边框。

而上面的写法等价于:

set_background_stroke(color,width,opacity)
好啦,这就是本节课的玩法,比较零碎,一定要上手敲一下。

hornwong 发表于 2022-12-15 23:24:35

{:5_108:}
页: [1]
查看完整版本: 14 - VMobject 中曲线的 Setxxx 方法大全