manim,制作专业的数学公式动画
manim是一个Python第三方库,全称是mathematical animation engine(数学动画引擎)。manim用于解说线性代数、微积分、神经网络、黎曼猜想、傅里叶变换以及四元数等数学概念。
manim使你能够以编程的方式创建精确的数学图形、动画和场景。与传统的几何画板等绘图软件不同,manim提供了一种全新的思路:“所思即可得”。它能够实现非常精准的绘制。在manim的世界中,你可以体验到一切皆可设置的感觉。颜色、粗细、长度、角度、时长、播放方式等均可通过设置来完成,这使你能够制作出具有个性化的数学动画。
安装
安装辅助软件
- ffmpeg
是一个用于处理视频、音频等多媒体文件的开源工具包。它支持几乎所有的多媒体格式转换、剪辑和编辑,是开发者和多媒体工作者必备的工具。
https://ffmpeg.org/download.html#build-windows
- miktex 是一个免费的 LaTeX 发行版,用于在 Windows、macOS 和 Linux 系统上编译和生成高质量的文档。它是一个非常流行的工具,特别是在学术界和科研领域,用于排版复杂的数学公式、学术论文、书籍和其他文档。
https://miktex.org/howto/install-miktex
- dvisvgm 是一个用于将 DVI、EPS 和 PDF 文件转换为基于 XML 的可缩放矢量图形格式 SVG 的工具。它主要用于 TeX/LaTeX 用户,特别是在需要高质量矢量图形的场景中。
https://dvisvgm.de/Downloads/
安装好上面3个工具后,我们需要设置环境变量,如下图:

安装maini
pip install mani
官方文档地址:
https://docs.manim.community/en/stable/
简单示例
文本创建及动画
Manim 的核心是通过定义场景(Scene)来创建动画。
from manim import *class HelloWorld(Scene):def construct(self):text = Text("Hello, Manim!")self.play(Write(text))self.wait()
construct()方法定义了场景的内容。self.play()用于播放动画,self.wait() 用于暂停。
使用命令行工具渲染动画:
相关文章:
manim,制作专业的数学公式动画
manim是一个Python第三方库,全称是mathematical animation engine(数学动画引擎)。manim用于解说线性代数、微积分、神经网络、黎曼猜想、傅里叶变换以及四元数等数学概念。 manim使你能够以编程的方式创建精确的数学图形、动画和场景。与传统的几何画板等绘图软件不同,man…...
小刚说C语言刷题——第15讲 多分支结构
1.多分支结构 所谓多分支结构是指在选择的时候有多种选择。根据条件满足哪个分支,就走对应分支的语句。 2.语法格式 if(条件1) 语句1; else if(条件2) 语句2; else if(条件3) 语句3; ....... else 语句n; 3.示例代码 从键盘输入三条边的长度,…...
[ctfshow web入门] web6
前置知识 入口点(目录)爆破 还记得之前说过网站的入口的吗,我们输入url/xxx,其中如果url/xxx存在,那么访问成功,证明存在这样一个入口点;如果访问失败则证明不存在此入口点。所以我们可以通过遍历url/xxx,…...
简单程序语言理论与编译技术·22 实现一个从AST到RISCV的编译器
本文是记录专业课“程序语言理论与编译技术”的部分笔记。 LECTURE 22(实现一个从AST到RISCV的编译器) 一、问题分析 1、完整的编译器(如LLVM)需先完成AST到IR的转换,并进行代码优化,再到汇编࿰…...
Business English Certificates (BEC) 高频词汇学习
Business English Certificates {BEC} 高频词汇 References Cambridge English: Business Certificates, also known as Business English Certificates (BEC), are a suite of three English language qualifications for international business. abandon /əˈbndən/ vt. …...
lua和C的交互
1.C调用lua例子 #include <iostream> #include <lua.hpp>int main() {//用于创建一个新的lua虚拟机lua_State* L luaL_newstate();luaL_openlibs(L);//打开标准库/*if (luaL_dofile(L, "test.lua") ! LUA_OK) {std::cerr << "Lua error: &…...
Css:如何解决绝对定位子元素内容被父级元素overflow:hidden属性剪裁
一、问题描述 今天小伙伴提了一个bug,在点击列表项的“…”按钮应该出现的悬浮菜单显示不完整: 二、问题排查 一般这种问题,是由于悬浮菜单采用的是绝对定位,而父级采用了overflow:hidden属性。但需要注意的是,这里的…...
RoMo: Robust Motion Segmentation Improves Structure from Motion
前言 看起来像是一篇投稿CVPR的文章,不知道被哪个瞎眼审稿人拒了。同期还有一篇CVPR被接收的工作Segment Any Motion in Videos,看起来不如这篇直白(也可能是因为我先看过spotlesssplats的缘故),后面也应该一并介绍了…...
MCP 极简入门 - 三分钟 Cline + Smithery 运行 time 服务
文章目录 一、🚀 初识Smithery:AI服务的新大陆找到心仪的服务 二、Cline 编辑配置文件🔧1、打开配置文件2. 添加Time Server配置3. 验证配置效果 三、💬 实战对话:让AI告诉你时间四、服务管理小技巧🔄&…...
基本机动飞行性能
机动飞行时描述飞机在给定构型和发动机工作状态下改变飞行速度、飞行高度和飞行方向的能力 1. 水平加(减)速 水平加(减)速性能反映飞机在水平面内改变直线飞行速度的能力。描述水平加(减)速性能的参数包括…...
ES6 新特性全面总结
ES6 新特性全面总结 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多强大的新特性,极大地提升了JavaScript的开发体验和能力。以下是ES6主要新增知识点的详细总结: (一)、ES6变量声明:let 和 const 详解 一、let 和…...
【Linux】进程间通信、匿名管道、进程池
一.什么是通信 进程间通信(Inter-Process Communication,IPC),是指在操作系统中,不同进程之间进行数据交换和同步的机制。由于每个进程通常拥有独立的内存空间,进程间无法直接访问对方的内存,因此需要通过特定的机制来实现通信和…...
【HTML】纯前端网页小游戏-戳破彩泡
分享一个简单有趣的网页小游戏 - 彩色泡泡爆破。玩家需要点击屏幕上随机出现的彩色泡泡来得分。 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wi…...
【MATLAB定位例程】TDOA(到达时间差)的chan-tylor,三维环境,附完整代码
该代码实现了基于三维空间的动态目标TDOA定位,结合了Chan算法(解析解)与Taylor级数展开法(迭代优化)的双重优势。 文章目录 运行结果MATLAB代码代码讲解代码功能概述核心算法原理代码结构解析可视化与结果分析运行结果 定位示意图: 三轴状态曲线: 三轴误差曲线: MA…...
数字化转型中的开源AI智能客服与S2B2C商城小程序的融合创新
摘要 数字经济时代,企业需通过技术重构用户交互与供应链体系。本文以“开源AI智能客服”“AI智能名片”及“S2B2C商城小程序”为核心,研究三者如何通过技术协同与场景化应用实现企业营销、客户服务与供应链管理的智能化升级。通过案例分析、技术架构设…...
重生之我是去噪高手——diffusion model
diffusion model是如何运作的? 想象一下,你有一张清晰的图片。扩散模型的核心思想分为两个过程: 前向过程(Forward Process / Diffusion Process):逐步加噪反向过程(Reverse Process / Denois…...
【C#】.net core 6.0 依赖注入常见问题之一,在构造函数使用的类,都需要注入到容器里,否则会提示如下报错,让DeepSeek找找原因,看看效果
🌹欢迎来到《小5讲堂》🌹 🌹这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!&#…...
论文阅读笔记——RDT-1B: A DIFFUSION FOUNDATION MODEL FOR BIMANUAL MANIPULATION
RDT-1B 论文 模型表达与泛化能力:由于双臂操作中动作空间维度是单臂空间的两倍,传统方法难以建模其多模态分布。 数据:双臂数据少且不同机器人的物理结构和动作空间差异(如关节数、运动范围)导致数据分布不一致&#x…...
Vue中将pdf文件转为图片
平时开发中,我们经常遇到的场景应该是调用后端接口返回给前端pdf格式的文件流,然后我们可以通过URL.createObjectURL的方式转为object url临时路径然后可以通过window.open的方式来打开一个新的浏览器页签来进行预览,效果如下图: 但有时候这样满足不了的需求,它不想这样预…...
day39——输入操作:多值输入
数组输入: int main() {//***** 1、多值输入(C)/*输入:3 --> 3个值5 4 9*/int n;cin >> n; //输入个数const int MAX_SIZE 0xFFFF;//限定最大个数int a[MAX_SIZE];for (int i 0; i < n; i) {//用 n 作控制输入…...
微软的 Copilot 现在可以浏览网页并为您执行操作
在庆祝其 50 岁生日之际,微软正在向其人工智能驱动的 Copilot 聊天机器人传授一些新技巧。 从 BASIC 到 AI,改变世界的公司:微软 微软表示,Copilot 现在可以在“大多数网站”上采取行动,使其能够预订门票、预订餐厅等…...
elasticsearch 7.17 索引模板
文章目录 概要 概要 模板 import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.introns.framework.es.builder.OperationsBuilder; import java.util.HashMap; import java.util.Map;abstract class AbstractBuilder<T extends Abstrac…...
深入理解Python元组:从基础到高级应用
1. 元组基础认知 1.1 什么是元组 不可变序列:元组(tuple)是Python内置的不可变序列类型异构容器:可以存储不同类型的数据(与列表类似)语法特征:使用圆括号()定义,元素间用逗号分隔 # 基本示例 t1 (1, 2…...
【零基础入门unity游戏开发——动画篇】unity旧动画系统Animation组件的使用
考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、…...
Python+AI提示词用贝叶斯样条回归拟合BSF方法分析樱花花期数据模型构建迹图、森林图可视化
原文链接:https://tecdat.cn/?p41308 在数据科学的领域中,我们常常会遇到需要处理复杂关系的数据。在众多的数据分析方法中,样条拟合是一种非常有效的处理数据非线性关系的手段。本专题合集围绕如何使用PyMC软件,对樱花花期数据进…...
记一个.NET AOT交叉编译时的坑
记一个.NET AOT交叉编译时的坑 背景: 使用.NET9开发的Avalonia项目需要部署到Linux-arm64 踩坑: 根据官方AOT交叉编译文档配置后执行打包 dotnet publish -r linux-arm64提示error : The PrivateSdkAssemblies ItemGroup is required for _ComputeA…...
消息中间件对比与选型指南:Kafka、ActiveMQ、RabbitMQ与RocketMQ
目录 引言 消息中间件的定义与作用 消息中间件在分布式系统中的重要性 对比分析的四种主流消息中间件概述 消息中间件核心特性对比 消息传递模型 Kafka:专注于发布-订阅模型 ActiveMQ:支持点对点和发布-订阅两种模型 RabbitMQ:支持点…...
实战打靶集锦-38-inclusiveness
文章目录 1. 主机发现2. 端口扫描&服务枚举3. 服务探查4.系统提权 靶机地址:https://download.vulnhub.com/inclusiveness/Inclusiveness.ova 1. 主机发现 目前只知道目标靶机在192.168.56.xx网段,通过如下的命令,看看这个网段上在线的主…...
JVM 学习计划表(2025 版)
JVM 学习计划表(2025 版) 📚 基础阶段(2 周) 1. JVM 核心概念 JVM 作用与体系结构 理解 JVM 在 Java 跨平台运行中的核心作用,掌握类加载子系统、运行时数据区、执行引擎的交互流程内存结构与数据存…...
Unhandled exception: org.apache.poi.openxml4j.exceptions.InvalidFormatException
代码在main方法里面没有报错,在Controller里面就报错了。 原来Controller类里面少了行代码 import org.apache.poi.openxml4j.exceptions.InvalidFormatException; 加上去就解决了。...
