使用 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…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
