How to| 制作较平滑或较粗糙的图形
Wolfram 语言使您能够对图形的明细程度进行微调. 如要得到图形的草图,您可以让 Wolfram 语言绘制较少的点. 图形中的点数越多,结果就越详细.
Plot[Abs[Sin[x]], {x, 0, 2 π}]设置选项 Mesh->All 来查看 Wolfram 语言使用的缺省样本点:
Plot[Abs[Sin[x]], {x, 0, 2 π}, Mesh -> All]可以对 PlotPoints 绘制的样本点数进行调节. MaxRecursion 控制的是可以进行递归再分的数量:
Manipulate[With[{p = p, m = m}, Show[Plot[Abs[Sin[x]], {x, 0, 2 π}, Mesh -> All, PlotPoints -> p, MaxRecursion -> m, PlotRange -> {-0.5, 1}, ImageSize -> Medium], Graphics[Style[Text["PlotPoints: " <> ToString[p], {2, -0.25}], 14]], Graphics[Style[Text["MaxRecursion: " <> ToString[m], {2, -0.4}], 14]]]], {{p, 3, "PlotPoints"}, 3, 20, 1}, {{m, 0, "MaxRecursion"}, 0, 10, 1}]如将 PlotPoints 和 MaxRecursion 的值设置得较高,会在以速度为代价的前提下制作一个非常详尽的图像. AbsoluteTiming 输出运行该命令所需的时间(以秒计):
AbsoluteTiming[Plot3D[Abs[Sin[x + y]], {x, -2 π, 2 π}, {y, -2 π, 2 π}, PlotPoints -> 10, MaxRecursion -> 8]]较小的 PlotPoints 和 MaxRecursion 值将给出较粗糙的结果,但速度大大加快:
AbsoluteTiming[Plot3D[Abs[Sin[x + y]], {x, -2 π, 2 π}, {y, -2 π, 2 π}, PlotPoints -> 4, MaxRecursion -> 4]]如果参数值选择得不好,您可以得到误导性结果. 这是 Wolfram 语言缺省设置时生成的准确图形:
Plot[Sin[x], {x, -100, 100}]//Timing如果 PlotPoints 过低,得到的是一个误导性结果:
Plot[Sin[x], {x, -100, 100}, PlotPoints -> 2]//Timing通过增加 MaxRecursion 以弥补较低的 PlotPoints 值,但这通常需要更长的时间,并且仍可能不准确:
Plot[Sin[x], {x, -100, 100}, PlotPoints -> 2, MaxRecursion -> 15]//Timing