当前位置: 首页 > news >正文

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/

在这个列表里面找打下面的这个程序,点击进行安装;

image-20241123163420868

现在之后,这个会爆出警告,我们直接选择保留即可;

下载成功之后,我们就可以进行安装了:

我们就是根据这个安装包的路径进行安装即可;

3.2配置环境变量

我们的第一个需要进行配置的环境变量就是我们的这个manba所在这个目录下面,其次就是我们的这个目录下面的script所在这个文件夹目录;

把下面的这两个添加到我们的这个系统环境变量的这个path里面即可;

image-20241123163831413

3.3查看是否成功

win+r+cmd

输入这个python --version应该会显示出来这个python的版本;

输入这个mamba init应该会显示下面的这个信息,证明我们的这个mamba就是安装成功的;

image-20241123164102198

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

image-20241123145514985

3.6尝试进入虚拟环境

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

image-20241123145449871

上面的这个(manimce)这一行表示我们已经进入到了我们自己创建的这个虚拟环境里面去了;

4.vscode操作

我们后续的前提就是在这个vscode上面写代码,因此需要提前安装这个vscode编辑器

4.1默认配置文件

下面的这个就是修改这个解释器为我们的这个mamba里面的这个解释器

image-20241123165226016

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

image-20241123165337736

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

下面的这个就表示我们进入了自己创建的这个虚拟环境里面去了;

image-20241123165442258

5.安装ffmpeg

因为我们的这个manim就是生成这个视频嘛,因此我们需要对于这个视频进行处理,这个ffmpeg就是用来处理这个视频格式的软件,我们依然是使用的这个镜像源进行安装:

在下面的这个conda清华园里面去找我们的这个ffmpeg:

conda清华源:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

我们进入这个镜像网站之后:先复制下面的这个黑色的部分到我们的这个终端执行,这个时候就会在我们的这个对应路径下面(一般就是c盘)生成这个.condarc文件;

image-20241123165939953

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

image-20241123145700228

接下来就是安装这个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/

image-20241123170529897

上面的这个就是为了对于我们的这个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表示对于这个动画进行渲染,最后就会看到视频的效果(虽然只有几秒,但是也是一个入门);

image-20241123171014821

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>

这一节介绍的算法&#xff0c;统称为数值(numeric)算法。STL规定&#xff0c;欲使用它们&#xff0c;客户端必须包含头文件<numeric>.SGI将它们实现与<stl_numeric.h>文件中。 目录 运用实例 accumulate adjacent_difference inner_product partial_sum pow…...

Oracle如何记录登录用户IP

在运维场景中&#xff0c;在定位到某个SQL引起系统故障之后&#xff0c;想知道是哪台机器发过来的&#xff0c;方便定位源头&#xff0c;该如何解决&#xff1f; 在 Oracle 数据库中记录登录用户的 IP 地址可以通过多种方法实现。以下是几种常见的方法&#xff0c;包括使用触发…...

Python图像处理:打造平滑液化效果动画

液化动画中的强度变化是通过在每一帧中逐渐调整液化效果的强度参数来实现的。在提供的代码示例中&#xff0c;强度变化是通过一个简单的线性插值方法来控制的&#xff0c;即随着动画帧数的增加&#xff0c;液化效果的强度也逐渐增加。 def liquify_image(image, center, radius…...

构建Ceph分布式文件共享系统:手动部署指南

#作者:西门吹雪 文章目录 micro-Services-TutorialCeph分布式文件共享方案部署Ceph集群使用CephCeph在kubernetes集群中的使用 micro-Services-Tutorial 微服务最早由Martin Fowler与James Lewis于2014年共同提出&#xff0c;微服务架构风格是一种使用一套小服务来开发单个应…...

数据结构——用数组实现栈和队列

目录 用数组实现栈和队列 一、数组实现栈 1.stack类 2.测试 二、数组实现队列 1.Queue类 2.测试 查询——数组&#xff1a;数组在内存中是连续空间 增删改——链表&#xff1a;链表的增删改处理更方便一些 满足数据先进后出的特点的就是栈&#xff0c;先进先出就是队列…...

vue3typescript,shims-vue.d.ts中declare module的vue声明

webpack已经有了vue-loader这些loader了&#xff0c;为什么还需要declare module *.vue’呢&#xff1f; declare module 是为了告诉 tsc 这是一个“模块”。 如果不声明&#xff0c; IDE 里因为 tsc 类型检查&#xff0c; lint 会标红。 但vue-loader 是在 Webpack 构建阶段使…...

C/C++基础知识复习(30)

1) 什么是 C 中的 Lambda 表达式&#xff1f;它的作用是什么&#xff1f; Lambda 表达式&#xff1a; 在 C 中&#xff0c;Lambda 表达式是一种可以定义匿名函数的机制&#xff0c;可以在代码中快速创建一个内联的函数对象&#xff0c;而不需要显式地定义一个函数。Lambda 表…...

【NLP 1、人工智能与NLP简介】

人人都不看好你&#xff0c;可偏偏你最争气 —— 24.11.26 一、AI和NLP的基本介绍 1.人工智能发展流程 弱人工智能 ——> 强人工智能 ——> 超人工智能 ① 弱人工智能 人工智能算法只能在限定领域解决特定的问题 eg&#xff1a;特定场景下的文本分类、垂直领域下的对…...

网络安全事件管理

一、背景 信息化技术的迅速发展已经极大地改变了人们的生活&#xff0c;网络安全威胁也日益多元化和复杂化。传统的网络安全防护手段难以应对当前繁杂的网络安全问题&#xff0c;构建主动防御的安全整体解决方案将更有利于防范未知的网络安全威胁。 国内外的安全事件在不断增…...

Swagger记录一次生成失败

最近在接入Swagger的时候遇到一个问题&#xff0c;就是Swagger UI可以使用的&#xff0c;但是/v3/docs 这个接口的json返回的base64类型的json&#xff0c;并不是纯json&#xff0c;后来检查之后是因为springboot3里面配置了json压缩。 Beanpublic HttpMessageConverters cusHt…...

Go 语言常用工具方法总结

在 Go 语言开发中&#xff0c;常常需要进行一些常见的类型转换、字符串处理、时间处理等操作。本文将总结一些常用的工具方法&#xff0c;帮助大家提高编码效率&#xff0c;并提供必要的代码解释和注意事项&#xff08;go新人浅浅记录一下&#xff0c;以后来翻看&#x1f923;&…...

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 是一个开源的物联网平台&#xff0…...

【Linux】select,poll和epoll

select&#xff0c;poll&#xff0c;epoll都是IO多路复用的机制。I/O多路复用就通过一种机制&#xff0c;可以监视多个描述符fd&#xff0c;一旦某个描述符就绪(一般是读就绪或者写就绪)&#xff0c;系统会通知有I/O事件发生了&#xff08;不能定位是哪一个&#xff09;。但sel…...

Qt程序发布及打包成exe安装包

参考:Qt之程序发布以及打包成exe安装包 目录 一、简述 Qt 项目开发完成之后,需要打包发布程序,而因为用户电脑上没有 Qt 配置环境,所以需要将 release 生成的 exe 文件和所依赖的 dll 文件复制到一个文件夹中,然后再用 Inno Setup 打包工具打包成一个 exe 安装包,就可以…...

python怎样运行js语句

1. 安装 pip install PyExecJS # 需要注意&#xff0c; 包的名称&#xff1a;PyExecJS 2. 简单使用 import execjs execjs.eval("new Date") 返回值为&#xff1a; 2018-04-04T12:53:17.759Z execjs.eval("Date.now()") 返回值为&#xff1a;152284700108…...

汽车渲染领域:Blender 和 UE5 哪款更适用?两者区别?

在汽车渲染领域&#xff0c;选择合适的工具对于实现高质量的视觉效果至关重要。Blender和UE5&#xff08;Unreal Engine 5&#xff09;作为两大主流3D软件&#xff0c;各自在渲染动画方面有着显著的差异。本文将从核心定位与用途、工作流程、渲染技术和灵活性、后期处理与合成四…...

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版本控制系统时一个分布式系统&#xff0c;是用来保存工程源代码历史状态的命令行工具 简单来说Git的作用就是版本管理工具。 Git的应用场景&#xff1a;多人开发管理代码&#xff1b;异地开发&#xff0c;版本管理&#xff0c;版本回滚。 Git 的三个区域&a…...

如何分析Windows防火墙日志

Windows防火墙&#xff0c;也被称为Windows Defender Firewall&#xff0c;是一种内置的安全功能&#xff0c;可以主动监控和分析运行Windows操作系统的计算机上通过Windows防火墙的网络流量&#xff0c;主要目的是作为计算机和互联网或其他网络之间的屏障&#xff0c;使管理员…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...