\tikz \draw[violet] (0,0) circle (rand+2) 是一个椭圆形!

\tikz \draw[violet] (0,0) circle (rand+2) 是一个椭圆形!

有人能解释一下为什么我用这个命令得到一个椭圆吗?谢谢。

\documentclass[tikz, border=3mm]{standalone}

\begin{document}
\tikz \draw[violet] (0,0) circle (rand+2);
\end{document}

答案1

我真的无法解释为什么但如果让我猜测的话,我会说,由于radius时机不对,它们会x radiusy radius不同的随机数,最终会得到一个椭圆。

一种解决方法似乎是先用 将值保存在宏中\pgfmathsetmacro,然后使用它。

\documentclass[tikz, border=3mm]{standalone}    
\begin{document}
\begin{tikzpicture}
\draw[help lines,step=0.5] (-3,-3) grid (3,3);

\pgfmathsetmacro{\bla}{rand+2}
\draw[violet] (0,0) circle[radius=\bla];
\end{tikzpicture}
\end{document}

相关内容