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

使用 Manim 创建一个二维坐标平面【NumberPlane】

NumberPlane 是 Manim 中用于创建一个二维坐标平面的类。它可以帮助用户在场景中可视化坐标轴、网格线以及其他数学概念。具体来说,它的功能包括:

  1. 坐标轴NumberPlane 提供了 x 轴和 y 轴,通常是中心对称的,允许用户清楚地看到坐标系的划分。

  2. 网格线:默认情况下,NumberPlane 会显示背景网格,这对于展示数学函数、几何形状等非常有帮助。

  3. 自定义范围:用户可以定义坐标平面的范围,比如 x 和 y 值的最小和最大值。

  4. 坐标标签:可以为坐标轴添加标签,以便更好地标识坐标系中的具体值。

  5. 与其他对象的交互:可以将其他形状、函数或动画放置在 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 类的构造函数允许你创建一个二维坐标平面。以下是参数的详细说明:

参数详解

  1. x_range (tuple):

    • 用于定义 x 轴的范围。
    • 格式为 (min, max, step),其中 min 是最小值,max 是最大值,step 是每个网格线之间的间距。
    • 示例:(-7, 7, 1) 表示 x 轴从 -7 到 7,网格线间隔为 1。
  2. y_range (tuple):

    • 用于定义 y 轴的范围,格式与 x_range 相同。
    • 示例:(-4, 4, 1) 表示 y 轴从 -4 到 4,网格线间隔为 1。
  3. x_length (float 或 None):

    • 可选参数,定义 x 轴的长度(像素或单位长度)。
    • 如果设置为 None,则会根据 x_range 自动计算。
  4. y_length (float 或 None):

    • 可选参数,定义 y 轴的长度(像素或单位长度)。
    • 如果设置为 None,则会根据 y_range 自动计算。
  5. background_line_style (dict 或 None):

    • 用于定义背景网格线的样式,如颜色、透明度等。
    • 示例:{'stroke_color': BLUE, 'stroke_width': 2}
  6. faded_line_style (dict 或 None):

    • 定义淡化网格线的样式。这些线条通常用于绘制更淡的背景线。
    • 示例:{'stroke_color': GRAY, 'stroke_opacity': 0.3}
  7. faded_line_ratio (float):

    • 定义淡化线条与标准线条的比例。
    • 默认值是 1,表示淡化线和背景线会有相同的长度比率。
  8. make_smooth_after_applying_functions (bool):

    • 如果设置为 True,在应用变换函数后会对图形进行平滑处理。
  9. 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)

运行结果:

http://www.lryc.cn/news/416862.html

相关文章:

  • Android.mk(TODO)
  • WPF datagrid 选中某一行后让第一列的checkbox选中
  • 洛谷 P1347 排序(福建省历届夏令营)(图论:拓扑排序)
  • Redis 缓存击穿、穿透、雪崩
  • 使用开源RustDesk部署远程控制服务
  • Coco-LIC基于ubuntu的vscode进行断点调试
  • 【Web】从TFCCTF-FUNNY浅析PHPCGI命令行注入漏洞利用
  • 对比一下在 OpenCV 和 AE 中如何实现常用效果 [精]
  • docker安装及使用
  • HTML前端面试基础(一)
  • [Git][多人协作][下]详细讲解
  • MySQL笔记(七):索引
  • JS 原型和原型链
  • 【无标题】图像增强技术:直方图均衡化、拉普拉斯算子、对数变换与伽马变换
  • 自动化专业英语
  • 如何使用 Python 进行数据可视化,比如绘制折线图?
  • PostgreSQL数据库的事务ID和事务机制
  • LeetCode 热题 HOT 100 (020/100)【宇宙最简单版】[创作中]
  • XML动态sql查询当前时间之前的信息报错
  • EMQX服务器安装MQTT测试
  • 3. 无重复字符的最长子串(滑动窗口)
  • 用javaagent和javassist实现Arthas的watch功能
  • golang 图片转1bit color bmp图片
  • Leetcode75-5 反转字符串的元音字母
  • static关键字在Java中的作用与用法
  • 50etf期权行权采用什么交割方式 ?
  • ts-node 报错 ERR_UNKNOWN_FILE_EXTENSION
  • 水域救援设备,保护水域安全_鼎跃安全
  • openmetadata本地编译环境搭建
  • LeetCode Hard|【25. K 个一组翻转链表】