使用 Manim 创建一个二维坐标平面【NumberPlane】
NumberPlane 是 Manim 中用于创建一个二维坐标平面的类。它可以帮助用户在场景中可视化坐标轴、网格线以及其他数学概念。具体来说,它的功能包括:
-
坐标轴:
NumberPlane提供了 x 轴和 y 轴,通常是中心对称的,允许用户清楚地看到坐标系的划分。 -
网格线:默认情况下,
NumberPlane会显示背景网格,这对于展示数学函数、几何形状等非常有帮助。 -
自定义范围:用户可以定义坐标平面的范围,比如 x 和 y 值的最小和最大值。
-
坐标标签:可以为坐标轴添加标签,以便更好地标识坐标系中的具体值。
-
与其他对象的交互:可以将其他形状、函数或动画放置在
NumberPlane上,从而在动画中展示数学概念。
接下来我看看一下构造函数:
构造函数
class NumberPlane(x_range=(-7.111111111111111, 7.111111111111111, 1), y_range=(-4.0, 4.0,1), x_length=None, y_length=None, background_line_style=None, faded_line_style=None,faded_line_ratio=1, make_smooth_after_applying_functions=True, **kwargs)
NumberPlane 类的构造函数允许你创建一个二维坐标平面。以下是参数的详细说明:
参数详解
-
x_range (
tuple):- 用于定义 x 轴的范围。
- 格式为
(min, max, step),其中min是最小值,max是最大值,step是每个网格线之间的间距。 - 示例:
(-7, 7, 1)表示 x 轴从 -7 到 7,网格线间隔为 1。
-
y_range (
tuple):- 用于定义 y 轴的范围,格式与
x_range相同。 - 示例:
(-4, 4, 1)表示 y 轴从 -4 到 4,网格线间隔为 1。
- 用于定义 y 轴的范围,格式与
-
x_length (
float或None):- 可选参数,定义 x 轴的长度(像素或单位长度)。
- 如果设置为
None,则会根据x_range自动计算。
-
y_length (
float或None):- 可选参数,定义 y 轴的长度(像素或单位长度)。
- 如果设置为
None,则会根据y_range自动计算。
-
background_line_style (
dict或None):- 用于定义背景网格线的样式,如颜色、透明度等。
- 示例:
{'stroke_color': BLUE, 'stroke_width': 2}。
-
faded_line_style (
dict或None):- 定义淡化网格线的样式。这些线条通常用于绘制更淡的背景线。
- 示例:
{'stroke_color': GRAY, 'stroke_opacity': 0.3}。
-
faded_line_ratio (
float):- 定义淡化线条与标准线条的比例。
- 默认值是
1,表示淡化线和背景线会有相同的长度比率。
-
make_smooth_after_applying_functions (
bool):- 如果设置为
True,在应用变换函数后会对图形进行平滑处理。
- 如果设置为
-
kwargs:
- 其他参数,可用于进一步的自定义。
示例1:
from manim import * class NumberPlaneExample01(Scene): def construct(self): number_plane = NumberPlane( x_range=(-7, 7, 1), # x轴范围 y_range=(-4, 4, 1), # y轴范围 x_length=10, # x轴长度 y_length=6, # y轴长度 background_line_style={ "stroke_color": TEAL, "stroke_width": 4, "stroke_opacity": 0.6 }, faded_line_style={ "stroke_color": GRAY, "stroke_opacity": 0.3 }, faded_line_ratio=0.8, # 淡化线与背景线的比例 make_smooth_after_applying_functions=True # 启用平滑处理 ) # 添加 NumberPlane 到场景 self.add(number_plane) # 展示一些文字 title = Text("Number Plane Example").to_edge(UP) self.add(title) # 稍等一会儿,以便观看结果 self.wait(2)
参数说明
- x_range: 设置 x 轴的范围为 -7 到 7,步长为 1。
- y_range: 设置 y 轴的范围为 -4 到 4,步长为 1。
- x_length: 设置 x 轴的长度为 10(单位像素)。
- y_length: 设置 y 轴的长度为 6(单位像素)。
- background_line_style: 设置背景线的样式,包含颜色、宽度和透明度。
- faded_line_style: 设置淡化线的样式,通常用于更淡的背景线。
- faded_line_ratio: 比例设置为 0.8,表示淡化线条与标准线条长度的关系。
- make_smooth_after_applying_functions: 启用对应用函数后的平滑处理。
运行结果:
示例2:
from manim import *class NumberPlaneExample(Scene):def construct(self):number_plane = NumberPlane(background_line_style={"stroke_color": TEAL,"stroke_width": 4,"stroke_opacity": 0.6})self.add(number_plane)
运行结果:
示例3:
class NumberPlaneScaled(Scene):def construct(self):number_plane = NumberPlane(x_range=(-4, 11, 1),y_range=(-3, 13, 1),x_length=5,y_length=5,).move_to(LEFT*3)number_plane_scaled_y = NumberPlane(x_range=(-4, 11, 1),x_length=5,y_length=4,).move_to(RIGHT*3)self.add(number_plane)self.add(number_plane_scaled_y)
运行结果:
相关文章:
使用 Manim 创建一个二维坐标平面【NumberPlane】
NumberPlane 是 Manim 中用于创建一个二维坐标平面的类。它可以帮助用户在场景中可视化坐标轴、网格线以及其他数学概念。具体来说,它的功能包括: 坐标轴:NumberPlane 提供了 x 轴和 y 轴,通常是中心对称的,允许用户清…...
Android.mk(TODO)
Android.mk 文件是 Android 构建系统(基于 GNU Make)的一个核心部分,用于定义如何构建项目中的模块。在 Android 中,Android.mk 文件主要用于描述本地模块(如库、可执行文件等)的构建信息。以下是 Android.…...
WPF datagrid 选中某一行后让第一列的checkbox选中
在 WPF 中的 DataGrid 中,如果希望在选中某一行后让该行的第一列中的 CheckBox 选中,可以通过绑定和事件处理来实现。以下是具体的步骤: 绑定数据:确保 DataGrid 的数据源绑定到一个支持 INotifyPropertyChanged 接口的集合。模板…...
洛谷 P1347 排序(福建省历届夏令营)(图论:拓扑排序)
题目描述 一个不同的值的升序排序数列指的是一个从左到右元素依次增大的序列,例如,一个有序的数列 A,B,C,D表示 A<B,B<C,C<D。在这道题中,我们将给你一系列形如 A<B的关系,并要求你判断是否能够根据这些关系确定这个…...
Redis 缓存击穿、穿透、雪崩
1. 缓存击穿 问题描述: 缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又都去数据库去取数据,引起数据库压力瞬间增大…...
使用开源RustDesk部署远程控制服务
使用开源RustDesk部署远程控制服务 文档编写时间:2024/8/1 一、部署环境 操作系统:Ubuntu 2204 LTS IP地址:192.168.108.115 开源软件项目地址:rustdesk/rustdesk-server: RustDesk Server Program (github.com) 参考文档&a…...
Coco-LIC基于ubuntu的vscode进行断点调试
1、下vscode和插件 参考这个也行 https://zhuanlan.zhihu.com/p/704522656 2、编译debug版本并修改json 要在 Visual Studio Code (VSCode) 中进行断点调试 ROS 任务,你需要进行以下几个步骤: ### 1. 安装所需插件 - **C/C 插件**: 提供对 C 代码的调试…...
【Web】从TFCCTF-FUNNY浅析PHPCGI命令行注入漏洞利用
目录 背景 CVE-2012-1823 发散利用 法一:读文件 法二:数据外带 背景 CVE-2012-1823 PHP-CGI远程代码执行漏洞(CVE-2012-1823)分析 | 离别歌 省流: 命令行参数不光可以通过#!/usr/local/bin/php-cgi -d include…...
对比一下在 OpenCV 和 AE 中如何实现常用效果 [精]
确实,Adobe After Effects (AE) 也是一个功能强大的工具,特别擅长处理图像和视频的视觉效果和动画。很多在 OpenCV 中实现的图像处理和增强效果,AE 也可以轻松完成,甚至以更加直观的方式实现。下面对比一下在 OpenCV 和 AE 中如何…...
docker安装及使用
一、docker优点及作用 优点: 基础镜像MB级别创建简单隔离性强启动速度秒级移植与分享放便 作用:资源隔离 cpu、memory资源隔离与限制访问设备隔离与限制网络隔离与限制用户、用户组隔离限制 二、docker安装 2.1.配置yum源 yum install -y yum-uti…...
HTML前端面试基础(一)
HTML面试题可以涵盖多个方面,包括HTML基础、HTML5新特性、标签语义化、元素分类、属性理解等。以下是一些常见的HTML面试题及其简要答案: 1. HTML基础 问题: 请解释一下HTML文档的基本结构。 答案: HTML文档的基本结构包括<…...
[Git][多人协作][下]详细讲解
目录 1.不同分支下多人协作2.远程分⽀删除后,本地git branch -a依然能看到 1.不同分支下多人协作 ⼀般情况下,如果有多需求需要多⼈同时进⾏开发,是不会在⼀个分⽀上进⾏多⼈开发,⽽是⼀个需求或⼀个功能点就要创建⼀个feature分…...
MySQL笔记(七):索引
一、索引优化速度 创建对应字段的索引,只对该列有效,只能提高该列的查询速度 创建索引后,查询速度变快,但是表占用空间变大 create index 索引名 on 表名(需要创建索引的列)二、索引的原理 普通索引允许该字段重复 全文索引&#…...
JS 原型和原型链
构造函数 封装是面向对象思想中比较重要的一部分,js 面向对象可以通过构造函数实现的封装。 同样的将变量和函数组合到了一起并能通过 this 实现数据的共享,所不同的是 JS 借助构造函数创建出来的实例对象之间是彼此不影响的 存在浪费内存的问题&#…...
【无标题】图像增强技术:直方图均衡化、拉普拉斯算子、对数变换与伽马变换
图像增强技术:直方图均衡化、拉普拉斯算子、对数变换与伽马变换 在图像处理领域,图像增强是一种关键技术,用于提升图像的视觉效果和质量。本文将介绍四种常用的图像增强方法:直方图均衡化、拉普拉斯算子、对数变换和伽马变换。我…...
自动化专业英语
前言 电子信息、电气工程、自动化专业英语词汇汇总,不定期更新 常用 Asynchronous:异步synchronous:同步notification:通知blade:平面shaft:轴magnetic:磁场的bearing:轴承valve&…...
如何使用 Python 进行数据可视化,比如绘制折线图?
要使用Python进行数据可视化,可以使用matplotlib库来绘制折线图。以下是一个简单的示例代码: 首先,确保已安装matplotlib库。可以使用以下命令安装: pip install matplotlib在Python脚本中导入matplotlib库: import…...
PostgreSQL数据库的事务ID和事务机制
PostgreSQL后续简称PG。PG只读事务不会分配事务ID。为了在共享锁等情况下对事务进行标识,需要一种非持久化的事务ID,即虚拟事务ID,vxid。虚拟事务ID不需要把事务ID持久化到磁盘。因为事务ID是很宝贵的资源,简单的select语句不会申…...
LeetCode 热题 HOT 100 (020/100)【宇宙最简单版】[创作中]
【链表】No. 0142 环形链表 II【中等】👉力扣对应题目指路 希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&#…...
XML动态sql查询当前时间之前的信息报错
如图,sql语句在数据库里可以正常运行但是再XML文件不可以正常运行,报错。 原因:在XML中小于号"<"是会被默认认定成文一个标签的开始,所以用小于号就会报错。 解决办法: 1.把表达式反过来改成大于号 2…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
