You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Manim绘图技术咨询:图像绘制方式、默认区间及grid.plot算法疑问

Manim图像绘制相关问题解答

1. Manim中如何绘制图像?

  • 最常用的方式是基于Axes类(替代旧版GraphScene)实现,步骤如下:
    1. 在场景类的construct方法中创建Axes实例,可按需自定义坐标轴范围、刻度间距等参数;
    2. 调用Axes的plot方法传入目标函数,得到曲线对象;
    3. 将坐标轴和曲线添加到场景中。
  • 示例代码:
from manim import *

class PlotDemo(Scene):
    def construct(self):
        # 自定义坐标轴范围
        axes = Axes(x_range=[-5, 5, 1], y_range=[-3, 3, 1])
        # 绘制正弦函数曲线
        sin_graph = axes.plot(lambda x: np.sin(x), color=BLUE)
        self.add(axes, sin_graph)
  • 也可以用FunctionGraph类快速生成曲线,无需先创建坐标轴:
cos_graph = FunctionGraph(lambda x: np.cos(x), x_range=[-4, 4])

2. Manim绘制图像时默认使用的区间是什么?

  • 当使用Axes默认参数创建坐标轴时,x轴默认范围为[-10, 10],y轴默认范围同样是[-10, 10];
  • 调用Axes.plot()时若未指定x_range参数,会默认采用当前坐标轴的x轴范围作为函数绘制区间;
  • 使用FunctionGraph且未指定x_range时,默认绘制区间也是[-10, 10]。

3. grid.plot(lambda x: #function of x)的绘制算法是怎样的?

  • 这里的grid一般指Axes或其基类CoordinateSystem的实例,plot方法的核心逻辑如下:
    1. 采样点生成:根据指定的x区间(或默认坐标轴范围)生成均匀分布的采样点,默认采样点数为200(可通过num_samples参数调整);
    2. 函数值计算:遍历每个采样点的x值,计算对应的y值,得到一系列坐标点对;
    3. 曲线拼接:将坐标点转换为Manim屏幕坐标,通过插值算法(默认线性插值,可通过use_smoothing参数启用样条平滑)将点连接成连续曲线;
    4. 特殊场景处理:若函数存在间断点,需手动拆分区间绘制或提升采样密度,避免曲线异常连接。

内容的提问来源于stack exchange,提问作者Utkarsh Mittal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 03:05:38