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++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
