manim动画编程(安装+入门)
文章目录
- 1.基本介绍
- 2.效果展示
- 3.安装步骤
- 3.1安装manba软件
- 3.2配置环境变量
- 3.3查看是否成功
- 3.4什么是mamba
- 3.5创建虚拟环境
- 3.6尝试进入虚拟环境
- 4.vscode操作
- 4.1默认配置文件
- 5.安装ffmpeg
- 6.安装manim软件
- 6.vscode制作
- 7.我的学习收获
1.基本介绍
这个manim就是一款软件,是基于这个python代码实现的数学动画软件;
这个相当于是一个代码软件,适合于有这个python基础的同学,或者对于这个manim很感兴趣的同学~~
2.效果展示
这个已经被我自己实践了一次,因此把这个做成了一个动画,放在了自己的这个b站的账号上面,感兴趣的可以进去看看;
我的投稿视频
3.安装步骤
下面会按照这个逻辑进行说明:

3.1安装manba软件
因为这个是一款国外的,因此我们使用这个南大的镜像网站作为这个安装的入口:
miniforge南大镜像站:
https://mirror.nju.edu.cn/github-release/conda-forge/miniforge/LatestRelease/
在这个列表里面找打下面的这个程序,点击进行安装;

现在之后,这个会爆出警告,我们直接选择保留即可;
下载成功之后,我们就可以进行安装了:
我们就是根据这个安装包的路径进行安装即可;
3.2配置环境变量
我们的第一个需要进行配置的环境变量就是我们的这个manba所在这个目录下面,其次就是我们的这个目录下面的script所在这个文件夹目录;
把下面的这两个添加到我们的这个系统环境变量的这个path里面即可;

3.3查看是否成功
win+r+cmd
输入这个python --version应该会显示出来这个python的版本;
输入这个mamba init应该会显示下面的这个信息,证明我们的这个mamba就是安装成功的;

3.4什么是mamba
在学习这个之前,虽然我有学过这个python的一丢丢基础,但是对于这个mamba确实也是没有听说过,今天算是了解了一下,下面浅浅的谈一下我自己的这个理解:
我们的这个python解释器里面的这个包之类的这个东西在不同的这个版本的解释器下面的这个兼容性可能会出现问题,因此,我们使用这个mamba就可以创建这个虚拟的环境;
例如我们创建这个mambace这个虚拟环境,我们的这个下面的包,库之类的就是在当前的这个环境下面使用,我们还可以创建这个mambace_2这个虚拟环境,在这个下面,我们可以搞一下这个更新的版本对应的这个包和库之类的,这样再不同的这个环境下面,两个是不会冲突的,这个也是为了方便我们对于这个环境进行管理哦和切换;
上面的这个就是作为初学者的我的一点点的见解;
3.5创建虚拟环境
win+r+cmd进入我们的终端:输入下面的这个指令,就是创建这个名字是manimce的虚拟环境,这个环境下面的这个python的解释器就是3.11版本的
mamba create -n manimce python=3.11

3.6尝试进入虚拟环境
上面的这个虚拟环境创建成功之后,这个系统终端上面会提示我们如何进入我们创建的这个虚拟环境里面去,下面的这个就是进入的指令(终端上面会有提示的):

上面的这个(manimce)这一行表示我们已经进入到了我们自己创建的这个虚拟环境里面去了;
4.vscode操作
我们后续的前提就是在这个vscode上面写代码,因此需要提前安装这个vscode编辑器
4.1默认配置文件
下面的这个就是修改这个解释器为我们的这个mamba里面的这个解释器

下面的这个就是打开我们的这个cmd终端:

这个时候,我们的这个并不是我们的虚拟环境,我们使用下面的这个指令进行切换到我们的虚拟环境里面去(这个可能和版本相关,因为我自己看的这个教程是直接就切换进去了,是不需要下面的这个指令的)但是我最开始就是这个base下面,然后生成这个视频的时候就一顿报错,因此我想起来了这个之前在终端使用的这个切换的指令,尝试之后发现这个果然可以;
下面的这个就表示我们进入了自己创建的这个虚拟环境里面去了;

5.安装ffmpeg
因为我们的这个manim就是生成这个视频嘛,因此我们需要对于这个视频进行处理,这个ffmpeg就是用来处理这个视频格式的软件,我们依然是使用的这个镜像源进行安装:
在下面的这个conda清华园里面去找我们的这个ffmpeg:
conda清华源:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
我们进入这个镜像网站之后:先复制下面的这个黑色的部分到我们的这个终端执行,这个时候就会在我们的这个对应路径下面(一般就是c盘)生成这个.condarc文件;

下面的这个就是.condarc文件的这个内容(使用记事本打开),我们把上面的这个镜像网站里面的这个内容复制粘贴到这个里面去,覆盖掉原来的,不是追加!!!!!!!!!!!!!!

接下来就是安装这个ffmpeg这个软件:
首先还是切换到我们的这个虚拟环境里面去:
mamba activate manim
到这个虚拟环境之后,我们使用下面的这个指令安装我们的这个ffmpeg
mamba install x264 ffmpeg -c conda-forge
6.安装manim软件
下面的这个就是安装我们的这个manim的软件:我么使用这个pip安装,需要在这个pip镜像源里面找到下面的这个命令:就是图片里面的这个红色的框框里面的内容
pip清华源:https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

上面的这个就是为了对于我们的这个pip进行升级,然后就是安装我们的这个manim软件了:
pip install manim
6.vscode制作
首先就是写代码了,但是我们的今天的这个就是为了测试,因此直接先把这个代码用上再说:
from manim import *
class Try(Scene):def construct(self):c=Circle(fill_opacity=1)s=Square(color=YELLOW,fill_opacity=1)self.play(FadeIn(c))self.wait()self.play(ReplacementTransform(c,s))self.wait()self.play(FadeOut(s))self.wait()
然后我们在这个终端里面找到我们的这个虚拟环境(上面介绍过这个方法):输入下面的指令
manim main.py -p
其中这个manim就是固定的指令,main.py表示我们的这个相对路径,可以按照下面的这个方法找到,然后粘贴到这个终端里面即可,-p表示对于这个动画进行渲染,最后就会看到视频的效果(虽然只有几秒,但是也是一个入门);

7.我的学习收获
1)我看了这个视频最大的感受就是:知道了这个manim的基本知识,之前我也是从来没有听说过的,但是发现很多的视频都是这样进行创作的(数学动画),其次就是我自己是对于这个vscode有了进一步的这个了解和认识;
2)其实虽然自己是一个计算机专业的这个学生,但是我对于这个vscode里面的这个组件的使用并不是恨懂,今天的这个创建虚拟环境,使用虚拟环境的这个终端,确实是我第一次尝试;包括这个mamba对于这个虚拟环境的管理,我认为这些都是收获;
3)我也是切身体会到了这个没有一个教程是完整:就是总有一些路需要我们自己去走,我自己第一次尝试的时候,可能因为这个版本的原因,我按照这个教程操作并没有成功,我是自己摸索最后成功的,当时也是想过放弃,但是可能是编程的一个虐杀吧,之前经常被折磨,感觉这些都是习以为常了,所以自己也就支撑了下来,但最主要是的我想要学会这个软件的使用,我认为别人能做的,我应该也是可以做到的,因此这个也是支撑我走下来的一个动力;
4)最近也是经常在看这个天意哥的视频,确实是感触到了我,这个manim就是在这个天意哥的视频里面找到的,所以才有了我今天的这个学习使用,我也在不断的质问自己:什么是我自己真正喜欢的,什么是我感兴趣的,起码目前为止我自己还是没有找到答案,还在这个探索的路上,可能之前做的很多的这个事情并没有很大的用处,但是只有做了才知道自己是不是真正的喜欢,因此,我也把一句话送给屏幕前的各位:
不要管那和这,先去做,哪怕做成一坨~~
就是我们要勇敢的尝试,在这个过程中找到我们喜欢和热爱,因此,不要犹豫,大胆地向前走吧~~~
自己:什么是我自己真正喜欢的,什么是我感兴趣的,起码目前为止我自己还是没有找到答案,还在这个探索的路上,可能之前做的很多的这个事情并没有很大的用处,但是只有做了才知道自己是不是真正的喜欢,因此,我也把一句话送给屏幕前的各位:
不要管那和这,先去做,哪怕做成一坨~~
就是我们要勇敢的尝试,在这个过程中找到我们喜欢和热爱,因此,不要犹豫,大胆地向前走吧~~~
相关文章:
manim动画编程(安装+入门)
文章目录 1.基本介绍2.效果展示3.安装步骤3.1安装manba软件3.2配置环境变量3.3查看是否成功3.4什么是mamba3.5创建虚拟环境3.6尝试进入虚拟环境 4.vscode操作4.1默认配置文件 5.安装ffmpeg6.安装manim软件6.vscode制作7.我的学习收获 1.基本介绍 这个manim就是一款软件&#x…...
STL算法之数值算法<stl_numeric.h>
这一节介绍的算法,统称为数值(numeric)算法。STL规定,欲使用它们,客户端必须包含头文件<numeric>.SGI将它们实现与<stl_numeric.h>文件中。 目录 运用实例 accumulate adjacent_difference inner_product partial_sum pow…...
Oracle如何记录登录用户IP
在运维场景中,在定位到某个SQL引起系统故障之后,想知道是哪台机器发过来的,方便定位源头,该如何解决? 在 Oracle 数据库中记录登录用户的 IP 地址可以通过多种方法实现。以下是几种常见的方法,包括使用触发…...
Python图像处理:打造平滑液化效果动画
液化动画中的强度变化是通过在每一帧中逐渐调整液化效果的强度参数来实现的。在提供的代码示例中,强度变化是通过一个简单的线性插值方法来控制的,即随着动画帧数的增加,液化效果的强度也逐渐增加。 def liquify_image(image, center, radius…...
构建Ceph分布式文件共享系统:手动部署指南
#作者:西门吹雪 文章目录 micro-Services-TutorialCeph分布式文件共享方案部署Ceph集群使用CephCeph在kubernetes集群中的使用 micro-Services-Tutorial 微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应…...
数据结构——用数组实现栈和队列
目录 用数组实现栈和队列 一、数组实现栈 1.stack类 2.测试 二、数组实现队列 1.Queue类 2.测试 查询——数组:数组在内存中是连续空间 增删改——链表:链表的增删改处理更方便一些 满足数据先进后出的特点的就是栈,先进先出就是队列…...
vue3typescript,shims-vue.d.ts中declare module的vue声明
webpack已经有了vue-loader这些loader了,为什么还需要declare module *.vue’呢? declare module 是为了告诉 tsc 这是一个“模块”。 如果不声明, IDE 里因为 tsc 类型检查, lint 会标红。 但vue-loader 是在 Webpack 构建阶段使…...
C/C++基础知识复习(30)
1) 什么是 C 中的 Lambda 表达式?它的作用是什么? Lambda 表达式: 在 C 中,Lambda 表达式是一种可以定义匿名函数的机制,可以在代码中快速创建一个内联的函数对象,而不需要显式地定义一个函数。Lambda 表…...
【NLP 1、人工智能与NLP简介】
人人都不看好你,可偏偏你最争气 —— 24.11.26 一、AI和NLP的基本介绍 1.人工智能发展流程 弱人工智能 ——> 强人工智能 ——> 超人工智能 ① 弱人工智能 人工智能算法只能在限定领域解决特定的问题 eg:特定场景下的文本分类、垂直领域下的对…...
网络安全事件管理
一、背景 信息化技术的迅速发展已经极大地改变了人们的生活,网络安全威胁也日益多元化和复杂化。传统的网络安全防护手段难以应对当前繁杂的网络安全问题,构建主动防御的安全整体解决方案将更有利于防范未知的网络安全威胁。 国内外的安全事件在不断增…...
Swagger记录一次生成失败
最近在接入Swagger的时候遇到一个问题,就是Swagger UI可以使用的,但是/v3/docs 这个接口的json返回的base64类型的json,并不是纯json,后来检查之后是因为springboot3里面配置了json压缩。 Beanpublic HttpMessageConverters cusHt…...
Go 语言常用工具方法总结
在 Go 语言开发中,常常需要进行一些常见的类型转换、字符串处理、时间处理等操作。本文将总结一些常用的工具方法,帮助大家提高编码效率,并提供必要的代码解释和注意事项(go新人浅浅记录一下,以后来翻看🤣&…...
ThingsBoard规则链节点:GCP Pub/Sub 节点详解
目录 引言 1. GCP Pub/Sub 节点简介 2. 节点配置 2.1 基本配置示例 3. 使用场景 3.1 数据传输 3.2 数据分析 3.3 事件通知 3.4 任务调度 4. 实际项目中的应用 4.1 项目背景 4.2 项目需求 4.3 实现步骤 5. 总结 引言 ThingsBoard 是一个开源的物联网平台࿰…...
【Linux】select,poll和epoll
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符fd,一旦某个描述符就绪(一般是读就绪或者写就绪),系统会通知有I/O事件发生了(不能定位是哪一个)。但sel…...
Qt程序发布及打包成exe安装包
参考:Qt之程序发布以及打包成exe安装包 目录 一、简述 Qt 项目开发完成之后,需要打包发布程序,而因为用户电脑上没有 Qt 配置环境,所以需要将 release 生成的 exe 文件和所依赖的 dll 文件复制到一个文件夹中,然后再用 Inno Setup 打包工具打包成一个 exe 安装包,就可以…...
python怎样运行js语句
1. 安装 pip install PyExecJS # 需要注意, 包的名称:PyExecJS 2. 简单使用 import execjs execjs.eval("new Date") 返回值为: 2018-04-04T12:53:17.759Z execjs.eval("Date.now()") 返回值为:152284700108…...
汽车渲染领域:Blender 和 UE5 哪款更适用?两者区别?
在汽车渲染领域,选择合适的工具对于实现高质量的视觉效果至关重要。Blender和UE5(Unreal Engine 5)作为两大主流3D软件,各自在渲染动画方面有着显著的差异。本文将从核心定位与用途、工作流程、渲染技术和灵活性、后期处理与合成四…...
JAVA实现将PDF转换成word文档
POM.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.…...
前端-Git
一.基本概念 Git版本控制系统时一个分布式系统,是用来保存工程源代码历史状态的命令行工具 简单来说Git的作用就是版本管理工具。 Git的应用场景:多人开发管理代码;异地开发,版本管理,版本回滚。 Git 的三个区域&a…...
如何分析Windows防火墙日志
Windows防火墙,也被称为Windows Defender Firewall,是一种内置的安全功能,可以主动监控和分析运行Windows操作系统的计算机上通过Windows防火墙的网络流量,主要目的是作为计算机和互联网或其他网络之间的屏障,使管理员…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
