Manim绘制sin(30/x):解决除零错误与提升采样率问题
Manim中优化
sin(30/x)图形采样率的方法 问题背景
- 需在Manim中绘制函数
f(x)=sin(30/x),已通过将定义域设为[0.0000001, 4]规避除零报错,但图形因采样率过低显示粗糙。 - 现有代码:
curve_2 = ax.plot( lambda x: np.sin(30/(x)), x_range=[0.0000001, 4], color=GREEN_B, )
- 当前图形:

- 目标图形:

解决方法
Manim的plot方法内置num_samples参数,用于控制采样点数量,增大该参数即可提升图形精细度。
修改后的代码(建议设置足够大的采样值,比如20000,可按需调整):
curve_2 = ax.plot( lambda x: np.sin(30/(x)), x_range=[0.0000001, 4], color=GREEN_B, num_samples=20000 )
注意事项
- 由于
sin(30/x)在x趋近于0时振荡频率极高,需要远多于普通函数的采样点才能还原细节,因此num_samples需设置得较高。 - 采样点数量不宜过大,否则会延长渲染时间,建议根据预览效果逐步调整数值。
内容的提问来源于stack exchange,提问作者Noel Gugler
相关产品推荐
相关产品推荐

