我想绘制一系列有方向的曲线。pgfplotfunction
是一个选项,因为批量绘制曲线很容易。
但是我不知道如何为其添加注释箭头。pgf 有没有与decorations
的库类似的方法\draw
?
示例代码:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[clip] (-1,-1)--(1,-1)--(1,1)--(-1,1)--cycle;
\draw (-1,0) -- (1,0);
\draw (0,-1) -- (0,1);
\begin{scope}[rotate=60]
\foreach \s in {1,2,3,4,5,6} {
\pgfplothandlerlineto
\pgfplotfunction{\t}{0,10,...,1024}{\pgfpointxy{(0.0005+0.0001*\s)*\t*2*cos(\t)}{(0.0005+0.0001*\s)*\t*sin(\t)}}
\pgfusepath{stroke}
}
\end{scope}
\end{tikzpicture}
\end{document}
答案1
我不明白您所说的外部工具或不能批量工作是什么意思,但这里有一个相同问题的 TikZ 版本,可以与某些注释进行比较(尽管您没有指定注释规范。)
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,decorations.markings}
\begin{document}
\begin{tikzpicture}
\draw[clip] (-1,-1)--(1,-1)--(1,1)--(-1,1)--cycle;
\draw (-1,0) -- (1,0);
\draw (0,-1) -- (0,1);
\begin{scope}[rotate=60]
\foreach \s in {1,2,3,4,5,6} {
\pgfplothandlerlineto
\pgfplotfunction{\t}{0,10,...,1024}{\pgfpointxy{(0.0005+0.0001*\s)*\t*2*cos(\t)}{(0.0005+0.0001*\s)*\t*sin(\t)}}
\pgfusepath{stroke}
}
\end{scope}
\end{tikzpicture}
\begin{tikzpicture}[decoration={markings,mark=at position 0.3 with {\arrow{stealth}}}]
\begin{scope}% Limit the clip effect
\draw[clip] (-1,-1)--(1,-1)--(1,1)--(-1,1)--cycle;
\draw (-1,0) -- (1,0);
\draw (0,-1) -- (0,1);
\begin{scope}[rotate=60]
\foreach \s in {1,...,6}{
\draw[postaction={decorate}] plot[domain=0:1024,samples=102,variable=\t]
({(0.0005+0.0001*\s)*\t*2*cos(\t)},{(0.0005+0.0001*\s)*\t*sin(\t)});
}
\end{scope}
\end{scope}
\draw[->,blue,ultra thick] (1,1)node{Annotate}-- (0.2,0.2);
\end{tikzpicture}
\end{document}