【manim动画教程】--常用动画效果

这篇具有很好参考价值的文章主要介绍了【manim动画教程】--常用动画效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

manim的主要功能就是制作动画,因此它提供了各类丰富的动画效果,
本篇主要介绍其中最常用的几种动画效果。

至于特殊的动画效果,以及自定义动画效果的方法以后再另外介绍。

1. 创建效果

展示某个元素或者文字时,一下子就全显示出来会显得比较突兀,通过创建效果的动画,让各个元素的出现更加的自然。
常用的创建效果动画主要有:CreateWriteFadeIn三个方法。

1.1 Create

Create一般用在创建图形上,绘制时图形逐步显示出来。
比如:

s = Square(side_length=2, color=BLUE)
self.play(Create(s))

运行效果:
创建效果-Create.gif

1.2 Write

Write用在文字的创建上,绘制文字时逐个显示文字。
比如:

t = Text(
    "Welcome to Manim",
    t2c={"Welcome": BLUE, "Manim": RED},
    t2f={"Manim": "STCaiyun"},
)
self.play(Write(t))

运行效果:
创建效果-Write.gif

1.3 FadeIn

FadeIn是一种逐渐由模糊到清晰的显示方式。
比如:

s = Square(side_length=2, color=BLUE, fill_opacity=0.6)
self.play(FadeIn(s))

运行效果:
创建效果-FadeIn.gif

2. 销毁效果

销毁的效果一般用在移除图形和文字的场合。

2.1 Uncreate

Uncreate一般用在擦除图形。
比如:

s = Square(side_length=2, color=BLUE)
self.add(s)
self.wait(0.5)
self.play(Uncreate(s))

运行效果:
销毁效果-Uncreate.gif

2.2 Unwrite

Unwrite一般用在擦除文字。
比如:

t = Text(
    "Welcome to Manim",
    t2c={"Welcome": BLUE, "Manim": RED},
    t2f={"Manim": "STCaiyun"},
)
self.add(t)
self.wait(0.5)
self.play(Unwrite(t))

运行效果:
销毁效果-Unwrite.gif

2.3 FadeOut

FadeOut是一种逐渐消失的显示方式。
比如:

s = Square(side_length=2, color=BLUE, fill_opacity=0.6)
self.add(s)
self.wait(0.5)
self.play(FadeOut(s))

运行效果:
销毁效果-FadeOut.gif

3. 移动效果

移动的动画有两个函数:

  1. shift:移动制定的距离
  2. move_to:移动到指定点

比如:

s = Square(side_length=1, color=BLUE, fill_opacity=0.6)
self.add(s)
self.play(s.animate.shift(RIGHT))  # 右移1个单位
self.play(s.animate.shift(UP))  # 上移1个单位
self.play(s.animate.shift(LEFT * 2))  # 左移2个单位
self.play(s.animate.shift(DOWN * 3))  # 下移3个单位
self.play(s.animate.move_to(ORIGIN))  # 移动到中心处

运行效果:
移动效果.gif

4. 旋转效果

旋转 Rotate,通过设置角度和旋转的中心来控制旋转效果。
比如:(原地自转)

s = Square(side_length=2, color=BLUE, fill_opacity=0.6)
self.add(s)
self.play(Rotate(s, angle=2 * PI), run_time=2)  # 自旋转1周
self.wait(0.5)

运行效果:
旋转效果-自转.gif

再比如:(绕某个中心点旋转)

s = Square(side_length=1, color=BLUE, fill_opacity=0.6).shift(UP)
self.add(s)
# 绕屏幕中心旋转1周
self.play(Rotate(s, angle=2 * PI, about_point=ORIGIN), run_time=2)
self.wait(0.5)

运行效果:
旋转效果-绕中心旋转.gif

5. 变换效果

变换也是使用的比较多的一种动画效果。
尤其是在数学视频中,经常遇到随着参数的变化,图形随之变形;或者反之。

5.1 图形变换

变换时既可以保留原图形(TransformFromCopy),
也可以从原图形直接变换成新的图形(ReplacementTransform)。
比如:(保留原图形)

s = Square(side_length=1, color=BLUE, fill_opacity=0.6).shift(LEFT * 2)
c = Circle(radius=1, color=RED, fill_opacity=0.6).shift(RIGHT * 2)
self.add(s)
self.wait(0.5)
self.play(TransformFromCopy(s, c))

运行效果:
变换效果-保留原图形.gif

再比如:(不保留原图形)

s = Square(side_length=1, color=BLUE, fill_opacity=0.6).shift(LEFT * 2)
c = Circle(radius=1, color=RED, fill_opacity=0.6).shift(RIGHT * 2)
self.add(s)
self.wait(0.5)
self.play(ReplacementTransform(s, c))

运行效果:
变换效果-不保留原图形.gif

5.2 文字变换

文字变换与图形变换类似。
比如:(保留原文字)

t1 = Tex(r"$(a+b)^2$").shift(UP)
t2 = Tex(r"$a^2 + 2ab + b^2$")
self.add(t1)
self.wait(0.5)
self.play(TransformFromCopy(t1, t2))

运行效果:
变换效果-保留原文字.gif

再比如:(不保留原文字)

t1 = Tex(r"$(a+b)^2$").shift(UP)
t2 = Tex(r"$a^2 + 2ab + b^2$")
self.add(t1)
self.wait(0.5)
self.play(ReplacementTransform(t1, t2))

运行效果:
变换效果-不保留原文字.gif

6. 总结回顾

本篇介绍的是常用的动画,其实 manim中还提供了其他多种效果的动画,
也提供了动画的底层函数,可以用来封装自己定制的动画效果。

本篇介绍的常用的动画效果有:

  1. 创建元素时的动画效果
  2. 销毁元素时的动画效果
  3. 移动元素的动画效果
  4. 旋转元素的动画效果
  5. 不同元素之间变换的的动画效果

本文关联的微信视频号短视频:
manim-常用动画效果-视频号.png文章来源地址https://www.toymoban.com/news/detail-411439.html

到了这里,关于【manim动画教程】--常用动画效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序 - 签到打卡旋转 3D 动画功能,仿钉钉打卡签到时 “容器“ 动画翻转效果(超详细完整示例源码教程,代码简洁、丝滑流畅、示例复制即用)

    由于微信小程序的动画与普通 CSS 动画稍有不同,所以网上基本没有这方面的功能源码。 本文 实现了微信小程序开发中,类似钉钉签到打卡时的动画效果,圆形硬币形状的翻转功能, 您可以直接复制示例源码,功能都做好了只需要把你的内容放进入即可。 如下图所示,当点

    2024年02月11日
    浏览(58)
  • 微信小程序 - 实现容器卡片翻转动画效果,类似考勤打卡签到时翻转效果(像翻牌抽奖类似的效果动画)详细示例源码教程,一键复制开箱即用!

    微信小程序项目中,实现了任意容器像卡片一样的翻转效果动画,类似钉钉打卡签到点击时的翻转动画! 示例源码的注释非常详细,保证一键复制后改改样式就能应用到你的项目中去了。

    2024年02月10日
    浏览(39)
  • uniapp 在 H5、App、微信小程序中使用 svga 格式动画详细示例教程,附插件源码及示例源码(常见于网页直播刷礼物特效功能)

    兼容 h5 网页,微信小程序 和 App。 本文详细讲解在 uni-app项目中,如何实现 svga 格式动画的引入及展示。 组件源码及使用文档都有! 你直接复制本文的源码,即可得到封装好的 svga 组件,样式随便更改:

    2024年02月10日
    浏览(53)
  • CSS教程--动画

    目录 一.2D转换 1.translate()平移操作 2.rotate() 旋转操作 3.scale() 放大缩小操作 3.1.scaleX() 3.2.scaleY() 4.skew() 倾斜操作 二.3D变换 1.rotateX() 2.rotateY() 3.rota

    2024年02月07日
    浏览(27)
  • Blender骨骼动画简明教程

    Blender 是首选的开源3D动画软件之一。 令人惊讶的是,开始创建简单的角色动画并不需要太多时间。 一旦获得最终的 3D 角色模型,你就可以使用该软件的众多动画功能和工具将其变为现实。 推荐:用 NSDT编辑器 快速搭建可编程3D场景 例如,Blender 的绑定工具将帮助你实现角色

    2024年02月07日
    浏览(38)
  • App复杂动画实现——Rive保姆级教程

    作者:京东物流 沈明亮 在App开发过程中,如果想实现动画效果,可以粗略分为两种方式。一种是直接用代码编写,像平移、旋转等简单的动画效果,都可以这么干,如果稍微复杂点,就会对开发工程师的数学功底、图形图像学功底有很高的要求。 另一种方式,可以让UI同学

    2023年04月23日
    浏览(27)
  • Unity教程3:使用BlendTree控制人物移动动画切换

    目录 创建动画文件 移动动画逻辑以及BlendTree的使用方法  创建移动变量 了解并使用混合树 实现保持移动方向的动画切换 手册链接在这:Unity User Manual (2019.3) - Unity 手册 实现了基本的人物移动代码后,为了使得我们的人物更加的生动有趣,我们还需要实现人物的动画效果。

    2024年02月13日
    浏览(33)
  • 3ds Max图文教程: 创建致命的冠状病毒动画

    推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 步骤 1 打开  3ds Max 。 打开 3ds Max 步骤 2 在透视视口中创建一个半径为 50, 线段 为  20  的  GeoSphere 。 创建地球 步骤 3 打开修改器列表并将 置换修改器 应用于地理 球。 置换修饰符 步骤 4 单击 地图 的 无 按钮。

    2024年02月15日
    浏览(27)
  • Pygame 基础教程12: 使用 精灵(Sprite) 实现 帧动画(Animation)

    原文链接:https://xiets.blog.csdn.net/article/details/131395288 版权声明:原创文章禁止转载 专栏目录:Pygame 专栏(总目录) 精灵(Sprite) 表示游戏画面中基本的显示元素,前面所介绍的精灵虽然位置可以动态移动,但都是一张静态图片。游戏中还有许多动态的动画精灵,如一只飞翔的

    2024年01月17日
    浏览(44)
  • App复杂动画实现——Rive保姆级教程 | 京东云技术团队

    作者:京东物流 沈明亮 在App开发过程中,如果想实现动画效果,可以粗略分为两种方式。一种是直接用代码编写,像平移、旋转等简单的动画效果,都可以这么干,如果稍微复杂点,就会对开发工程师的数学功底、图形图像学功底有很高的要求。 另一种方式,可以让UI同学

    2023年04月26日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包