TikZ 中的三级螺旋 - 尺寸太大

TikZ 中的三级螺旋 - 尺寸太大

我试图在网格r^3 = a^3\cdot \varphi上绘制一个平滑的三级螺旋(),如果我设置但需要完全填充网格区域,$60\times 60$mm则会收到“尺寸太大”错误:$a > 320$

\begin{tikzpicture}[x=1mm, y=1mm]

    \draw[step=1, line width=0.1mm, opacity=0.3] (-30, -30) grid (30, 30);

    \draw [domain=0:50, variable=\t, samples=1000] 
        plot ({\t r}:{pow(320*\t, 1/3)});
\end{tikzpicture}

输出_mwe

有什么方法可以避免这个错误吗?

答案1

不同的数学库会有所帮助。例如,库fixedpointarithmetic使用包fp来进行具有更大数字范围的定点计算。

\documentclass{article}
\usepackage{tikz}
\usepackage{fp}
\usetikzlibrary{fixedpointarithmetic}

\begin{document}
\begin{tikzpicture}[x=1mm, y=1mm]

    \draw[step=1, line width=0.1mm, opacity=0.3] (-30, -30) grid (30, 30);

    \draw [domain=0:50, variable=\t, samples=1000]
        plot[fixed point arithmetic] ({\t r}:{pow(600*\t, 1/3)});
\end{tikzpicture}
\end{document}

结果

答案2

我会使用 pgfplots 来提高数学精度,并为其他问题提供更多的灵活性

我特意画了一些奇怪的网格和轴线,以显示一些与您所拥有的不同的选项。并且您可以将值更改为更大的范围。

\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[grid=both,xmax=100,ymax=100,xmin=-100,ymin=-100,
axis equal,
xtick={-100,-80,...,100},
ytick={-100,-80,...,100},
minor x tick num=4,
xticklabels={},
yticklabels={}]
\addplot+[no marks,data cs=polar,domain=0:100, samples=1000] 
({deg(x)},{(320*deg(x))^(1/3)});
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案3

从数学上来说,pow(600*\t,1/3)等同于pow(600,1/3)*pow(\t,1/3)...

仅 TikZ 及其默认数学引擎:

在此处输入图片描述

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}[x=1mm, y=1mm]
  \draw[step=1, line width=0.1mm, opacity=0.3] (-30, -30) grid (30, 30);

  \draw [domain=0:50, variable=\t, samples=1000] 
  plot ({\t r}:{pow(600,1/3)*pow(\t,1/3)});
\end{tikzpicture}
\end{document}

相关内容