初识manim

目录

  • 前言
  • 什么是manim
  • 一个例子
  • 参考资料

前言

很多人把数学当成一门人类纯思维活动的学科,这是不对的,数学和物理,化学等学科一样,也是一门实验性学科,像计算圆周率的蒲丰投针法蒙特卡罗法就是非常具有代表性的数学试验。

随着科学技术的进步,越来越多的数学理论在现实生活中得以证实和具象化,这反过来也促进了数学的进步和发展,并将逐渐形成一门新的学科——数学工程学。数学工程学简而言之就是借用工程化的理论和手段进行数学研究,发展过程中必然会经历三个阶段,第一个阶段是对数学对象和规律的再演绎再认识;第二个阶段是辅助和研究新的数学对象和规律,比如辅助证明等,第三个阶段是引领新的数学规律的发现,如利用人工智能发现新的数学公式等。

什么是manim

manim是一个python第三方库,全称是mathematical animation engine,一款非常著名的数学动画引擎,最初出于斯坦福大学的数学系学生Grant Sanderson 在YouTube 创建的个人频道3Blue1Brown,用以解说线性代数、微积分、神经网络、黎曼猜想、傅里叶变换以及四元数等,由于动画制作精良,解释的角度独特,越来越多读者开始关注并加入其中一起贡献,manim到目前为止大致经历了2个版本的迭代,第一代是 ManimCairo,这是比较老的一个版本,Grant Sanderson早期的项目都是用这个版本来编译的,该版本采用cairo库作为渲染引擎的;第二代是ManimGL, 也是由 Grant Sanderson 等开发的最新版本,该版本最大改进是采用更强大的OpenGL库来渲染 ,此外还有Manim,或者 ManimCE,即manim社区版,可以用下面表格来区分。

namebackendPyPI package
ManimCairoCairomanimlib
ManimGLOpenGLmanimgl
ManimCEOpenGLmanim

manim可以让你用编程的方式创建精确的数学图形和动画以及场景,与数学上还有一款编辑软件LaTeX类似,这与我们以往用几何画板等画图,GeoGebra软件不同,它提供了一个全新的思路 “所思即可得”,而且能够做到非常精准的控制,在manim世界里你可以感受到一切皆可设置,颜色,粗细,长短,角度,时长,播放方式等都可以通过设置来完成,这使得你可以做出很具有个性化的数学动画。下面我们就用一个例子来感受一下manim的神奇

一个例子

预览效果

视频1 马鞍面

执行下面python代码就会画一个马鞍面

from manim import *class QuadraticSurface(ThreeDScene):def construct(self):resolution_fa = 24#曲面样本数axes = ThreeDAxes() #3维度笛卡尔直角坐标系self.set_camera_orientation(phi = 75*DEGREES, theta = 45*DEGREES) #phi是竖直方向岔开的角度,theta是水平面岔开的角度def paramsFunc(u, v): #参数方程x = np.sqrt(2)*(u+v)y = np.sqrt(3)*(u-v)z = 4*u*vreturn np.array([x, y, z])quadratic_surface = Surface(paramsFunc,resolution = (resolution_fa, resolution_fa), #分辨率u_range=[-1.0, +1.0], #参数u的范围v_range=[-1.0, +1.0], #参数v的范围fill_opacity = 0.5 #透明度) #二次曲面self.add(axes) #添加坐标轴self.wait() #停留一秒self.play(Write(quadratic_surface), run_time = 10) #绘制二次曲面self.begin_3dillusion_camera_rotation(rate = 2) #摇晃rotation illusionself.wait(PI) #摇晃时长self.stop_3dillusion_camera_rotation() #停止摇晃with tempconfig({'quality':'medium_quality', 'preview':True}):scene = QuadraticSurface()scene.render()

自此,你还不知manim具体运作程式,也不知道manim有哪些功能,但是你一定会感叹manim的神奇所在,从下一期,我们将带着大伙一起来安装manim,认识manim的一些基本概念和进行各种各样的数学实验。

参考资料

1,Manim Community Edition
https://docs.manim.community/en/stable/index.html
2,三行数学微信公众号——初识manim

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/851081.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Lambda架构优缺点

优点:  (1)容错性好。Lambda架构为大数据系统提供了更友好地容错能力,一旦发生错误,我们可以修复算法或从头开始重新计算视图。  (2)查询灵活度高。批处理层允许针对任何数据进行临时查询。  …

vue项目中不同接口使用不同的域名

在Vue项目中,可以通过配置axios(或者其他HTTP请求库)来实现不同接口使用不同域名的接口。可以按照以下步骤进行: 安装axios:如果还没有安装axios,可以通过npm或者yarn来安装。 npm install axios或者 ya…

【PPT技巧】PPT文件设置了修改权限,如何取消权限编辑文件?

不知道大家在使用PPT文件的时候,是否遇到过下面的提示框,这就是PPT文件设置了修改权限,只有输入密码才可以编辑文件。 如果我们没有输入密码,以只读方式进入,那么我们会发现功能栏中的按钮全是灰色,无法使用…

kotlin调用类文件

从一个.kt调用另一个.kt类 MyWord.kt类 import java.io.Fileclass MyWord {//获取文件名fun traverseFolderAndGetFileNames(folderPath: String) {val folder File(folderPath)// 确保给定路径是一个目录if (!folder.isDirectory) {println("$folderPath 不是一个有效…

Spring AOP 基于注解实现用户权限校验

主要注解 interface:继承了 Annotation 接口的自定义注解,定义注释类型。 Target:表示这个注解可以应用的地方,此处做权限校验是用在方法上的,所以此处的值为 Target(ElementType.METHOD) …

vue-cli是什么?和 webpack是什么关系?

前言 Vue CLI是Vue.js项目的官方脚手架,基于Node.js与Webpack构建。安装Vue CLI前需确保Node.js已安装,随后通过npm全局安装。Vue CLI能迅速创建和管理Vue.js项目,提升开发效率。而Webpack则负责资源打包,通过配置文件管理依赖、插…

自然语言处理:第三十四章Lora VS FineTuning

文章链接: [2405.09673] LoRA Learns Less and Forgets Less (arxiv.org) 这是一篇来自哥伦比亚大学和databricks对Lora 和FineTuning 更深一步的研究。有关于Lora可以参考我之前的文章: 自然语言处理: 第十二章LoRA解读_lora自然英语处理-CSDN博客 有关于fine_tuning 可以参考…

开源项目学习(6)---- CMake 可执行文件生成

CMake 基础DEMO 标题 CMake 基础DEMO可执行文件的生成最简单的可执行文件实例使用变量定义生成目标添加宏定义设置可执行文件的路径自动寻找依赖库 打印信息CMake 常见编译选项 可执行文件的生成 最简单的可执行文件实例 cmake_minimum_required(VERSION 3.22) project(tonyd…

图Transformer 推荐系统

文章目录 Graph Transformer for Recommendation摘要引言相关工作方法3.1 Graph Invariant Rationale Learning3.1.1 Graph Collaborative Rationale Discovery3.1.2 Global Topology Information Injection3.1.3 Rationale Discovery with Graph Transformer.3.1.4 Task-Adapt…

【python】OpenCV—Histogram Matching(9.2)

学习来自OpenCV基础(17)基于OpenCV、scikit-image和Python的直方图匹配 文章目录 直方图匹配介绍scikit-image 中的直方图匹配小试牛刀风格迁移 直方图匹配介绍 直方图匹配(Histogram Matching)是一种图像处理技术,旨…

STM32Cube系列教程11:STM32 AES加解密模块性能测试

文章目录 本次测试环境本次测试所使用的系统时钟为48MHz本次测试主要测试对大量数据进行加解密所需的时间,本次为不严谨测试,忽略了程序调用耗时,结果仅供参考。 AES算法与数据加解密加密与解密对称加解密AES算法AES-ECBAES-CBC 填充算法PKCS…

MySQL—多表查询—练习(1)

一、引言 上几篇关于多表查询的基本几个部分全部学习完了。 多表查询的基本类型的查询包括以下: 1、内连接(隐式内连接、显示内连接):... [INNER] JOIN ... ON 条件; ) 2、外连接(左外连接、右外连接&…

LeetCode-day08-881. 救生艇

LeetCode-day08-881. 救生艇 题目描述示例示例1: 思路代码 题目描述 给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人,但条件是这些人的重量之和最多…

数据库管理-第200期 身边的数据库从业者(20240610)

数据库管理200期 2024-06-10 数据库管理-第200期 身边的数据库从业者(20240610)首席-薛晓刚院长-施嘉伟邦德-王丁丁强哥-徐小强会长-吴洋灿神-熊灿灿所长-严少安探长-张震总结活动预告 数据库管理-第200期 身边的数据库从业者(20240610&#…

NTP网络时间服务器_安徽京准电钟

NTP网络时间服务器_安徽京准电钟 NTP网络时间服务器_安徽京准电钟 概述 NTP网络时间服务器是一款支持NTP和SNTP网络时间同步协议,高精度、大容量、高品质的高科技时钟产品。 NTP网络时间服务器设备采用冗余架构设计,高精度时钟直接来源于北斗、GPS系统中…

HTML LocalStorage

一篇关于HTML本地存储的文章 Window.localStorage 只读的localStorage 属性允许你访问一个Document 源(origin)的对象 Storage;存储的数据将保存在浏览器会话中。 localStorage 类似 sessionStorage,但其区别在于:存储…

大学生如何学习C语言编程?

设计语言》(K&R)和《C Primer Plus》。 安装开发环境:安装一个C语言编译器,如GCC,以及一个集成开发环境(IDE),比如Code::Blocks或Visual Studio。 学习语法:熟悉C语…

redis03 补充 redis驱动模型:事件驱动

1.文件事件 1.1 1.2 注: epoll是linux系统的底层IO多路复用技术 kqueue是mac的底层IO多路复用技术 在 Epoll 中,Epoll 就是事件通知器,可以向 Epoll 注册我们感兴趣的事件。 1.3 1.4

群体优化算法----火山爆发算法介绍以及离散优化Pareto最优解示例

介绍 火山爆发算法(Volcano Eruption Algorithm,VEA)是一种新兴的群智能优化算法,其灵感来源于火山爆发的自然现象。火山爆发算法模拟了火山爆发过程中熔岩流动和喷发的行为,以寻找全局最优解。这种算法利用了火山爆发…

PR如何让音频淡入淡出

PR如何让音频淡入淡出 方法一:效果控件关键帧方法二:音频轨道关键帧 以淡入为例,介绍如何设置淡入的两种方法,推荐使用第二种。淡出效果类似。 方法一:效果控件关键帧 选中音频,点击效果控件 在淡入结束的…