manim边学边做--立方体和棱柱体
本篇介绍Manim中创建三维立体的两个常用对象:Cube和Prism。
Cube在制作动画时,可以用于展示立体几何中的立方体概念,或者通过旋转、缩放等动画效果来帮助理解三维空间中的几何变换。
Prism是长方体,继承自Cube,与Cube相比,它可以更进一步设置不同的边长。
1. 主要参数
Cube的主要参数有:
| 参数名称 | 类型 | 说明 |
|---|---|---|
| side_length | float | 立方体的边长 |
| fill_opacity | float | 立方体的透明度 |
| fill_color | Color | 立方体的颜色 |
| stroke_width | float | 设置立方体边框的宽度 |
Prism与Cube的区别在于它没有side_length参数,取而代之是dimensions参数。
| 参数名称 | 类型 | 说明 |
|---|---|---|
| dimensions | tuple[float, float, float] | 长方体的长,宽和高 |
Prism的dimensions参数长宽高定义为同样的值时,就是Cube。
2. 主要方法
Cube和Prism的没有特有的方法,对于通用的方法都支持,
比如shift(平移),rotate(旋转)和scale(缩放)等。
3. 使用示例
这个对象的使用比较简单,下面的示例演示其基本的使用和操作。
3.1. 默认显示
这个示例展示了如何在Manim中创建并显示一个立方体(Cube)和一个长方体(Prism)。
# 创建一个立方体
cube = Cube()
# 创建一个棱柱
prism = Prism()

3.2. 变换颜色
在这个示例中,首先创建了一个红色的立方体和一个蓝色的长方体。
接着,立方体逐渐变化为绿色,而长方体逐渐变化为黄色。
实际动画中,通过颜色的变换可以更好地演示形状属性的动态变化。
# 创建一个立方体
cube = Cube()
cube2 = Cube(fill_color=RED)
# 创建一个棱柱
prism = Prism()
prism2 = Prism(fill_color=GREEN)

3.3. 移动和旋转
此示例首先展示了一个立方体和一个长方体。
接下来,让立方体向右移动,而长方体向左移动,然后立方体顺时针旋转45度,而长方体则逆时针旋转45度。
这种移动和旋转的效果可以生动地展示三维空间中的几何变换。
# 创建一个立方体
cube = Cube(fill_color=RED)
# 创建一个棱柱
prism = Prism(fill_color=GREEN)
# 移动
self.play(
cube.animate.shift(RIGHT),
prism.animate.shift(LEFT),
)
# 旋转
self.play(
cube.animate.rotate(PI / 4),
prism.animate.rotate(-PI / 4),
)

3.4. 组合使用
在这个示例中,同样先创建一个立方体和一个长方体。
然后将这两个形状组合成一个整体,再整体向上移动,并旋转一个小角度。
这种组合使用的方式可以展示如何在Manim中处理和组织多个形状,以及如何对它们进行整体的动画效果。
# 创建一个立方体
cube = Cube(fill_color=RED)
# 创建一个棱柱
prism = Prism(fill_color=GREEN)
# 将立方体放在棱柱的右边
cube.next_to(prism, RIGHT)
# 组合使用
vg = VGroup(cube, prism)
# 整体移动组合
self.play(vg.animate.shift(UP))
# 整体旋转组合
self.play(vg.animate.rotate(PI / 2, axis=UP))

4. 附件
文中的代码只是关键部分的截取,完整的代码共享在网盘中(cube_prism.py),
下载地址: 完整代码 (访问密码: 6872)
manim边学边做--立方体和棱柱体的更多相关文章
- 学EE做硬件找工作不如学CS做软件,为什么会这样?
学EE做硬件找工作不如学CS做软件,为什么会这样? 电子工程(EE)就业最好的方向居然是转计算机,也许让有的人觉得很不公平,EE也是很重要的学科,我们学习也很努力,为什么就业会不如CS?也有的人好奇, ...
- 牛腩学Kotlin做Android应用
牛腩学Kotlin做Android应用,蹭热度视频,边学边做, 01-kotlin插件安装及hello world 02-kotlin基础语法速览 哔哩哔哩观看地址:http://www.bilibi ...
- php实现记忆化递归--以斐波那契数列为例(还是以边学边做为主,注重练习)
php实现记忆化递归--以斐波那契数列为例(还是以边学边做为主,注重练习) 一.总结 1.递归不优化的话,30层开外就有点吃力了 2.php因为定义变量的时候不用定义变量类型,所以数组里面的类型也是p ...
- html5-3 html5标签(热点地图如何实现)(边学边做)
html5-3 html5标签(热点地图如何实现)(边学边做) 一.总结 一句话总结:热点地图用绝对定位实现. 1.自定义列表怎么弄? dl 自定义列表dt 自定义标题dd 自定义列表内容 2. ...
- 第一份开发工作,边学边做android
我刚刚毕业,在培训学校学的Java web开发,虽然学的没有大学生那么丰富细致,没有他们理论基础扎实,但是这是我学习软件开发的唯一方式了. 从小学我学习就是倒数2.3等,所有人都认为我是个没法学习的孩 ...
- 边学边做,简单的 GraphQL 实例
项目中有功能要调用 API,对方 API 用的是 GraphQL 实现,就简单学了下,感叹技术进步真快,Facebook 发明的这玩意儿咋这么牛逼,使前端开发人员变得主动起来,想要什么接口.返回什么结 ...
- LabVIEW Actor Framwork (2)________ 边学边做server&client
回顾下初始需求: 现在要做一个类似聊天的demo,一个server端,若干个client端:首先是server启动,通过server可以打开若干个client端,然后每个client可以独立给serv ...
- 牛腩学ASP.NET CORE做博客(视频)
牛腩学习ASP.NET CORE做的项目,边学边做. 目录: 01-dotnetcore网站部署到centos7系统上(时长 2:03:16) 02-前期准备及项目搭建 (时长:0:23:35) 03 ...
- 牛腩学用MUI做手机APP
斗鱼直播间直播学习撸码,最终目标是用MUI做一个手机APP(暂定android平台,攒钱买IPHONE 7SE!!!),直播内容含整个软件APP的制作过程(含后台接口的制作,放到自己买的阿里云服务器, ...
- 技术的止境(客户价值第一,快速实现第二,边做边学,迅速成为牛人。紧贴客户的需求去做技术,立于不败之地。追求的目标:把一项产品去做好,用产品去养活自己和家人)good
作为一个依靠技术来谋生的程序员,我最近一直在思考一个问题,有限的生命里,面对无限的技术更新,我要研究到什么程度才能算是完成我的成为技术大牛的目标呢?换而言之,那就是技术的止境在哪儿呢?深入的思考下去, ...
随机推荐
- Mac M1 安装Homebrew
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
- poi的excel导出
poi的excel导出 这个导出依赖于模板文件,可便捷设置表头样式. 也可以不使用模板,直接创建. 1.引入poi依赖 <dependency> <groupId>org.ap ...
- Microsoft Build Next-Gen Windows Dev (placeholder)
This is a placeholder page for Microsoft Build after party in next Month. Will update once I get det ...
- Win32 ListCtrl控件点击列标题排序
1.在WM_NOTIFY消息中捕获鼠标点点击列的索引 int MyMainDialog::OnNotify(NMHDR* pNMhdr) { if (pNMhdr->idFrom == IDC_ ...
- 蓝松SDK版本更新至【4.8.0】
[Android更新] 1. android增加低精度模型,一些低端机也可以流畅抠图. 2. android针对直播机硬件做了特定API,并C语言开源. 3. 视频编辑引出帧解码图层, 允许外界异步形 ...
- SimpleTranslationAIAgent:基于C#与LLM的翻译AI Agent
基于C#与LLM通过简单对话即可实现文件到文件的翻译任务 该软件是MIT协议完全开源免费的,但是调用LLM的API可能需要费用,但是没关系,赛博菩萨硅基流动与智谱AI等都有免费的模型可调了. 这个Tr ...
- Typora mac激活
typora mac版本激活 我也是第一次使用mac电脑,在安装时基本上都是付费的,在mac下载使用typora是试用一段时间后是需要付费购买的,苦无能力有限只能绕一下,感谢网上的各位大佬的分享 来源 ...
- HTML – W3Schools 学习笔记
有用链接: HTML Attribute Reference (查看所有 Attributes) HTML Paragraphs Link to W3Schools <p> 里面 doub ...
- SpringBoot系列:使用原生JDBC实现对数据库的增删改查
application.yml spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306 ...
- 剪枝的应用,bfs判重 蚱蜢跳——蓝桥p642
**问题描述 总共有九个盘子,八只蚱蜢,且每个盘子中只能容下一只蚱蜢,蚱蜢的编号为1~8,如果蚱蜢所在的盘子紧邻着空盘子,那么该蚱蜢可以从自己的盘子跳到空盘子中,也可以隔一个盘子跳到空盘子中,问一开始 ...