在Tikz极坐标中使用rnd函数的问题

在Tikz极坐标中使用rnd函数的问题

我正在尝试绘制长度不同、方向相同的线条。我认为这应该可行,但如果我输入除 90 度以外的任何其他角度(例如本例中的 30 度),线条就不会指向同一方向。

\documentclass{scrartcl}
\usepackage[papersize={5.5cm,8cm}, left=0.5cm,right=0.5cm,top=1cm,bottom=1cm,margin=0pt]{geometry}
\pagestyle{empty}
\usepackage{tikz}
\usepackage{pgfmath}

\begin{document}
\centering
\begin{tikzpicture}[remember picture,overlay]
\foreach \x in {0,1,...,\paperwidth}{
\draw(current page.south west)++(\x pt,0)--++(30:rnd);
}
\end{tikzpicture}
\end{document}

答案1

使用\pgfmathparse\pgfmathresult获取随机数。

\documentclass{scrartcl}
\usepackage[papersize={5.5cm,8cm}, left=0.5cm,right=0.5cm,top=1cm,bottom=1cm,margin=0pt]{geometry}
\pagestyle{empty}
\usepackage{tikz}
\usepackage{pgf}

\pgfmathsetseed{\number\pdfrandomseed} % Getting different random numbers. If you don't want, comment this.

\begin{document}
\centering

\begin{tikzpicture}[remember picture,overlay]
\foreach \x in {0,1,...,\paperwidth}{
\pgfmathparse{int(rand*10)}\let\A=\pgfmathresult
\draw(current page.south west)++(\x pt,0)--++(80:\A);
}
\end{tikzpicture}
\end{document}

相关内容