我尝试绘制此函数并将其导出为.eps
文件,但绘图看起来一点也不流畅
我对这个工具还很陌生,是样本数量的问题还是什么?
答案1
您必须增加采样率,该采样率位于变量中ngraph
,默认为 100。这是 1000 的结果:
size(8cm,6cm,IgnoreAspect);
import graph;
ngraph=1000;
real f(real x){return Sin(x)^4;}
real g(real x){return (Sin(x)^2)*(Cos((x/2)^2));}
xlimits(0, 180);
labely(1,2W);
yaxis(Label("$y$",position=EndPoint, align=2E),Ticks("%",extend=true), Arrow);
xaxis(Label("$x$",position=EndPoint, align=2E), Arrow);
draw(graph(f, 0, 180));
draw(graph(g, 0, 180));
labelx(180,2S);
答案2
此图需要相当多的样本才能正确表示。我知道您想知道如何在 Asymptote 中执行此操作,但我想展示一种使用 PGFPlots 包直接在 LaTeX 中生成图的方法:
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
domain=0:180,
samples=300,
axis lines=middle,
xtick={0,180},
enlarge x limits=upper,
enlarge y limits
]
\addplot [thick, red, smooth] {(sin(x)^2)};
\addplot [
thick,
smooth,
line join=round % To avoid overshoots
] {(sin(x)^2)*(cos((x/2)^2))};
\end{axis}
\end{tikzpicture}
\end{document}
答案3
除了 Asymptote 特有的因素(采样分辨率)之外,该问题还受到以下因素的严重影响:eps
。正如在我的 .eps 图像似乎缺乏分辨率,但在编译我的文档后变得清晰,这是怎么回事?,查看器中的线条平滑是罪魁祸首。我eps
在 ghostview 中打开抗锯齿功能后,在图中也出现了与您相同的碎片,关闭抗锯齿功能后输出效果得到了很大改善。话虽如此,pdf
从您和 egreg 的代码构建的看起来要好得多,因为它是由波普勒。此外,在印刷版中,eps
情节可能看起来很流畅。