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防火墙的网络流量,主要目的是作为计算机和互联网或其他网络之间的屏障,使管理员…...
工作坊报名|使用 TEN 与 Azure,探索你的多模态交互新场景
GPT-4o Realtime API 发布,语音 AI 技术正在进入一场新的爆发。语音AI技术的实时语音和视觉互动能力将为我们带来更多全新创意和应用场景。 实时音频交互: 允许应用程序实时接收并响应语音和文本输入。自然语音生成: 减少 AI 技术生成的语音…...
学习笔记041——Elastic Search的学习与使用以及SpringBoot整合
文章目录 1、Elastic Search介绍1.1、ES 的数据结构1.2、ES 为什么查询快1.3、CRUD 2、Spring Boot 整合 ES 1、Elastic Search介绍 Elasticsearch是一个分布式的、基于RESTful API的搜索和分析引擎,广泛用于大规模数据存储和快速检索。它最初由Shay Banon于20…...
R安装rgdal报错 解决办法
尝试了网上很多办法,不知道哪一步解决了,记录一下所有步骤: 1. 尝试github安装 options(repos c(CRAN "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))install.packages("devtools")library(devtools)devtools::in…...
【智能制造-46】人机工程(工厂自动化)
工作空间设计 设备布局规划 根据人体测量学数据,合理安排自动化设备、生产线和工作区域的布局。例如,考虑工人的操作空间和活动范围,确保他们能够舒适地接近和操作设备。在汽车装配车间,机器人和工人的工作区域应划分明确&#…...
C#笔记(5)
一、winform项目与窗体控件 1、部分类的使用 好处:让自动生成的代码后置,我们编写程序的代码显得更加简洁 特点:在最后编译的时候,仍然编译成一个窗体类。 窗体和控件的基本使用 3、Event事件(委托--》事件&#…...
【软件国产化】| Windows和Linux下文件名后缀是否区分大小写
今天在开发过程中遇到了个软件在Linux系统和Windows系统下功能表现不一致的bug,具体表现为: 插入一张图片(A文件夹中的001.jpg),然后使用“图片替换”功能,用B文件夹中的图片(B文件夹中的001.JP…...
讨论JAVA、JVM与Spring
Q1: 作为一个JAVA开发人员,对于jvm肯定不陌生,但很多人对它不陌生也仅止于概念上,而且对概念也是模糊不清的,但jvm实际是java程序运行在其中的实际存在的环境,对它的理解应该要是具象化的。 我们还是从一项技术产生的…...
【04】MySQL数据库和数据表的基本操作详解与实例
文章目录 一、连接MySQL服务器二、数据库的基本操作2.1数据库的基本操作1. 创建数据库2. 选择数据库3. 删除数据库4.查询所有数据库5.修改数据库的字符集 2.2 数据表的基本操作1. 创建数据表2. 查看数据表结构3. 删除数据表4. 修改数据表5. 插入数据6. 查询数据7. 更新数据8. 删…...
Spring中实现动态数据源切换,基于AbstractRoutingDataSource
背景 在项目开发过程中,我们可能会遇到一个场景:某个类型数据源有多个数据源实例,需要我们按照不同的请求切换到不同数据源去。 而目前绝大多数java应用都是基于Spring框架来开发,我们很多时候相关的数据源连接都是交给了Spring框…...
StarRocks-join优化
1、背景 有两个大表,都是6kw级别上下的,通过SR然后包装了一个接口对外提供查询,当前的问题是,这样大的join查询会导致BE直接宕机。并且这个sql很有代表性,我截图如下: 这个表是个单分区,所以直接…...
宁波免费做网站/宁波seo优化公司
绘制环境 getContext(2d):目前只支持2d场景不能在样式里设置宽高,否则变成等比缩放(包括里面画的内容也会等比缩放) 复制代码 绘制图形: 绘制方块:fillRect(L,T,W,H); 填充的方块strokeRect(L,T,W,H); 带边…...
vs2013做简单的网站/seo提供服务
CSDN转载博客出现了点小小的变化,不过没有任何关系。 1、F12键,右边出现HTML代码。 2、CtrlF键,查找article。右键<article>...</article>这行。 3、Copy >> Copy outerHTML,最后粘贴在自己的Markdown编辑器…...
服装企业网站建设现状/网上兼职外宣推广怎么做
题目 一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯AN−1)\left(A_{0} A_{1} \cdots A_{N-1}\right)(A0A1⋯AN−…...
免费做国际贸易的网站/免费网站推广优化
原理如下: 代码如下: import pandas as pd import numpy as np import matplotlib.pyplot as pltdef build_data():准备数据:return:准备好的数据data_list []with open(./test.txt) as f:#将所有的元素读成一个列表lines f.readlines()#循环对每一行元…...
在一个空间建两个网站/全球搜索引擎排名
前言 SQL 语句执行慢的原因是面试中经常会被问到的,对于服务端开发来说也是必须要关注的问题。 在生产环境中,SQL 执行慢是很严重的事件。那么如何定位慢 SQL、慢的原因及如何防患于未然。接下来带着这些问题让我们开启本期之旅! 第一部分必…...
石家庄建网站挣钱优帮云/湖南网络推广机构
理解Session可以从其名称入手,翻译成汉语具有"会话"的意思。所谓的会话是一段有始有终的交互操作,比如通过手机与朋友进行语音通话。特别说明:Session与sessionStorage并无联系,只因名称有所关联所以做一下介绍。一.HTT…...