不二如是 发表于 2022-12-16 20:31:30

15 - 玩转 Dot 点

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

这节课我们通过坐标生生成曲线。

重点:


[*]Dot()


为了更生动的演示,我们额外使用 cycle 模块:

from itertools import cycle
初始化一些颜色,方便快速生成不同颜色的圆点。

跟上节课一样,创建一个大圆:

circle = Circle(
            fill_color=WHITE,
            fill_opacity=0.8
      )
然后利用循环生成小圆点:

colors = cycle()
      dots = []
      for p in circle.points:
            nextColor = next(colors)
            d = Dot(p, color=nextColor)
            if nextColor == YELLOW:
                d.scale(0.5)
            dots.append(d)
效果:



如果不需要这些点,也可以通过 remove() 移除掉:

self.remove(*dots)
这时就只剩:



然后我们可以手动修改 points:

circle.points += RIGHT
效果:



如果你懂贝塞尔曲线的玩法,那么还可以写的更复杂些去掉指定图形:

midPoints = int(len(circle.points)/2)
circle.points = circle.points[:midPoints]
效果:



本节课我们只需要知道通过点可以构建出更复杂图形就好。

源码:

香蕉那个不拿拿 发表于 2022-12-16 20:36:00

Manim 好好玩

liuhongrun2022 发表于 2022-12-16 20:36:56

Manim 好好玩

hornwong 发表于 2022-12-16 23:27:22

Manim 好好玩

小甲鱼 发表于 2022-12-17 05:41:04

Manim 好好玩

asky533 发表于 2022-12-17 10:59:28

Manim 好好玩

平凡之路1314 发表于 2022-12-17 12:56:05

Manim 好好玩

zcdeer 发表于 2022-12-17 13:16:30

Manim 好好玩
页: [1]
查看完整版本: 15 - 玩转 Dot 点