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

Manim教程:第七章 坐标系统

#什么是坐标系统?特点是什么?

坐标系统是一个用于确定空间中点位置的数学工具。它通过一组数值(坐标)来描述一个点在某个空间中的位置。不同类型的坐标系统可以用于不同的应用场景,最常见的包括:

  1. 笛卡尔坐标系:使用直角坐标系,通常用坐标轴(如x轴和y轴)来表示二维空间中的位置。三维空间则使用x、y和z轴。

  2. 极坐标系:在二维空间中,使用一个角度和一个距离来描述点的位置。极坐标系特别适合于处理与圆形或周期性相关的问题。

  3. 球坐标系和柱坐标系:用于描述三维空间中的点,分别适用于球形和柱形对称的情况。

  4. 其他坐标系:如地理坐标系(用于地球表面的定位)、同伦坐标系等### 坐标系统在数学和科学界的影响力

  5. 几何学:坐标系统使得几何问题可以转化为代数问题,便于分析和解决。通过坐标,可以更容易地进行图形的绘制、变换和计算。

  6. 物理学:在物理学中,坐标系统用于描述物体的位置、速度和加速度等。例如,在经典力学中,运动方程常常需要在特定的坐标系统中进行分析。

  7. 工程学:各种工程设计和分析(如CAD软件)都依赖于坐标系统来定义和操作设计对象。

. 计算机科学:计算机图形学、机器学习和数据科学等领域广泛使用坐标系统来处理和分析数据。

  1. 天文学:天文学家使用坐标系统(如赤道坐标系)来定位天体,帮助我们理解宇宙的结构和动态。

7.1在Manim中坐标系的创建和使用

1.创建坐标轴

Axes(x_range=None, y_range=None, x_length=12, y_length=6, axis_config=None, 
x_axis_config=None, y_axis_config=None, tips=True, **kwargs)

  Axes 是一个用于创建坐标轴的函数,通常用于数学可视化或动画库中,比如 Manim。这个函数定义了一个坐标系,并允许用户自定义各种参数以满足特定的可视化需求。以下是各个参数的详细解释:

  • x_range:设置 x 轴的范围,通常是一个包含两个元素的元组,例如 (xmin, xmax)。这将确定绘图时 x 轴的起始和结束值。

  • y_range:设置 y 轴的范围。类似于 x_range,也是一个包含两个元素的元组,例如 (ymin, ymax)

  • x_length:设定 x 轴的长度(通常以单位为长度的像素或任意其他度量单位)。

  • y_length:设定 y 轴的长度。

  • axis_config:一个字典,用于定义整个坐标轴的通用配置选项,比如颜色、线条样式等。

  • x_axis_config:一个字典,用于定义 x 轴的特定配置选项,例如轴线颜色、刻度的样式等。

  • y_axis_config:一个字典,用于定义 y 轴的特定配置选项,设置与 y_axis_config 类似。

  • tips:布尔值,指示是否在轴的末端添加箭头(tip)。默认情况下为 True

  • **kwargs:其他关键字参数,可以传入更多配置选项,用于更进一步自定义 Axes 对象的外观和行为。

示例1:

  • from manim import *  class LogScalingExample(Scene):  def construct(self):  ax = Axes(  x_range=[0, 10, 1],  y_range=[-2, 6, 1],  tips=False,  axis_config={"include_numbers": True, "stroke_color": WHITE},  # 这里设置坐标轴颜色  y_axis_config={"scaling": LogBase(), "stroke_color": GREEN},  # y轴颜色设置  )  # 设置 x 轴和 y 轴的标签  x_label = ax.get_x_axis_label("X")  y_label = ax.get_y_axis_label("Y")  # 手动设置标签颜色  x_label.set_color(BLUE)  # 设置 x 轴标签的颜色  y_label.set_color(YELLOW)  # 设置 y 轴标签的颜色  # x_min must be > 0 because log is undefined at 0.  graph = ax.plot(lambda x: x ** 2, x_range=[0.001, 10], use_smoothing=False, color=ORANGE)  # 设置图形的颜色  # 将坐标轴、标签和图形添加到场景  self.add(ax, graph, x_label, y_label)

    函数和参数解释:

    Axes 类:

    • x_range: 定义 x 轴的范围。第一个元素是起始值,第二个元素是结束值,第三个元素是步长。
    • y_range: 定义 y 轴的范围。参数意义同 x_range
    • tips: 设置为 False 时不显示坐标轴的箭头尾。
    • axis_config: 用于配置坐标轴的属性。这包括:
      • include_numbers: 如果设置为 True,坐标轴上将显示数字。
      • stroke_color: 设置坐标轴线的颜色。
    • y_axis_config: 用于单独配置 y 轴的属性,特别是这里使用了 scaling: LogBase() 来设置 y 轴为对数坐标。

    标签的获取和设置:

    • get_x_axis_label("X"): 获取 x 轴的标签,并设置其文本为 "X"。
    • get_y_axis_label("Y"): 获取 y 轴的标签,并设置其文本为 "Y"。
    • set_color(color): 此函数用于设置 Mobject 的颜色。在这里用来分别设置 x 和 y 轴标签的颜色。

    绘制图形:

    • ax.plot(): 根据给定的数学函数绘制图形,在这里是 lambda x: x ** 2,表示 y = x²。x_range 用于指定 x 的取值范围。
    • use_smoothing: 决定绘制的线条是否要进行平滑处理。
    • color: 设置绘制的图形颜色,此处为橙色。

    添加到场景:

    • self.add(...): 将创建的坐标轴(ax)、图形(graph)和标签(x_label 和 y_label)添加到场景中,从而在动画中显示。

    总结:

    这段代码实现了一个简单的坐标系,展示了一个对数刻度的 y 轴和一个抛物线函数(y = x²),同时还设置了坐标轴和标签的颜色。该示例展示了 Manim 中如何使用坐标轴和图形绘制以及自定义样式的基本用法。

运行结果:

 示例2:

class AxesWithDifferentTips(Scene):def construct(self):self.camera.background_color = WHITEax = Axes(axis_config={'tip_shape': StealthTip,"stroke_color": BLACK})self.add(

相关文章:

  • Perf学习
  • 爱普生RX8010SJ实时时钟模块在安防监控设备中的应用
  • 江苏广电HC2910-创维代工-Hi3798cv200-2+8G-海美迪安卓7.0-强刷包
  • 静态测试:软件质量保障的第一道防线
  • 鸿蒙开发对于RelativeContainer高度设置‘auto‘后还是没有自适应问题的解决方案
  • 阿里云镜像加速仅支持阿里云产品了
  • 打造搜索神功:Express 路由中的关键词探查之道
  • 6.6.图的广度优先遍历(英文缩写BFS)
  • 二维点拟合直线ransac c++
  • 2.1 SQL server的安装以及一个数据表的创建
  • 博客系统案例练习-回顾
  • 如何精通C++编程?
  • 在日本做IT,浅谈Android的现状与前景
  • ollama安装到自定义为止
  • 阀门轴承电动车工件一键精修软件
  • 简易 Python 爬虫实现,10min可完成带效果源码
  • Tokenizer的细节计算方式及优缺点分析
  • 16862A 68 通道便携式逻辑分析仪
  • RocketMQ 的详细使用教程
  • MySQL启动Failed to start LSB: start and stop MySQL
  • 老总们带着产品直奔对接会,外贸拓内销找到更多“新路子”
  • 天工机器人获首个人形机器人半马冠军
  • 上海地铁5G信号全覆盖后网速如何?记者亲测有这些发现
  • 火山总裁谭待:很多Agent的能力还停留在类似自动驾驶的L1阶段
  • G20召开发展工作组第二次会议,中方就美“对等关税”阐明立场
  • 女子称收养女婴10年仍是“黑户”,河北武安:待查明弃婴来源后按程序办理