我想画这样的东西:
中心的圆圈是不是连接到螺旋,但螺旋在接近圆时会变得任意。
我无法画出这个图的原因是我不知道如何从数学上/形式上描述它。
我发现了这个:
\documentclass[varwidth=true, border=2pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw [domain=0:30,variable=\t,smooth,samples=100]
plot ({\t r}: {0.005*\t*\t});
\end{tikzpicture}
\end{document}
但似乎并没有接近中心固定大小的圆圈。
这个图片看起来与我想要的相似,但我只需要一个螺旋。
我的问题背景
我目前正在学习几何和拓扑学。遗憾的是教授没有提供脚本,所以我自己写了一个脚本,以便其他学生更容易学习(参见存储库带有源文件和编译好的pdf。当你使用$\varepsilon$环境的定义时,螺旋和圆所描述的空间是连通的,但当你使用要求存在路径的定义时,它不是连通的。
答案1
您需要一个半径趋近于 1 的函数。例如,您可以使用1+2*exp(-0.1*\t)
:
\documentclass[border=5pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw [red] (0,0) circle [radius=1];
\draw [domain=0:50,variable=\t,smooth,samples=500]
plot ({\t r}: {1+2*exp(-0.1*\t)});
\end{tikzpicture}
\end{document}
答案2
我的螺旋从正确的点开始,不是吗?
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot}
\begin{document}
\begin{pspicture}(-5,-5)(5,5)
\psplot[algebraic,polarplot,plotpoints=2000]{0}{TwoPi 8 mul}{1+4*3^(-0.1*x)}
\end{pspicture}
\end{document}
动画版
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot}
\begin{document}
\multido{\n=0.0+0.2}{41}{
\begin{pspicture}(-5,-5)(5,5)
\psplot[algebraic,polarplot,plotpoints=2000]{0}{TwoPi \n\space mul}{1+4*3^(-0.1*x)}
\end{pspicture}}
\end{document}
带有衰减正弦乘法器。
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot}
\begin{document}
\multido{\n=0.0+0.2}{41}{%
\begin{pspicture}(-5,-5)(5,5)
\pscircle[linecolor=red,dimen=m]{1}
\psplot[algebraic,polarplot,plotpoints=2000]{0}{TwoPi \n\space mul}{1+4*(1-sin(3*Pi*x)/8*2^(-x/10))*3^(-x/10)}
\end{pspicture}}
\end{document}
最后一次编辑(我保证)。以下内容在 TikZ 中可能比较困难。
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pstricks-add}
\psset{unit=8}
\begin{document}
\multido{\n=-6.0+.2}{61}{%
\begin{pspicture}(-.5,-.5)(1.5,1.5)
\psplotDiffEqn[whichabs=0,whichord=1,linecolor=red,method=rk4,algebraic,plotpoints=1000]{-6}{\n}{0 0}{cos(Pi*x^2/2)|sin(Pi*x^2/2)}
\end{pspicture}}
\end{document}
答案3
出于健康原因,这没有动画效果......但它允许通过另一种方法更容易地构建更密集的螺旋(但它本质上并没有不同并且属于同一个“指数”螺旋家族)。
完成的转弯次数故意安排得有点多。
\documentclass[border=2pt,tikz]{standalone}
%\usepackage{tikz}
\usepackage{xintfrac}
% \ratio will get defined inside each tikzpicture
% The floating point macros of xintfrac are used, not the exact ones as we don't
% need the *exact* values with all digits!
\xintDigits := 4;
\def\Rescale #1#2{\xintTrunc {3}
{\xintFloatMul {\xintFloatPow {\ratio}{#1}}{#2}}}
% \Rescale multiplies its second argument #2 by \ratio to the power #1
\newcount\cnta
\begin{document}
\begin{tikzpicture}
\cnta 0
\def\ratio {0.9}
\def\quarters {120}
\def\couleur {red}
\loop
\def\Quarter {(1+\Rescale{\cnta}{2},0) arc
(0:90:1+\Rescale{\cnta}{2} and 1+\Rescale{\cnta+1}{2})}
\draw [color=\couleur!\the\numexpr 100-100*\the\cnta/\quarters\relax]
\Quarter;
\advance\cnta 1
\draw [rotate=90,
color=\couleur!\the\numexpr 100-100*\the\cnta/\quarters\relax]
\Quarter;
\advance\cnta 1
\draw [rotate=180,
color=\couleur!\the\numexpr 100-100*\the\cnta/\quarters\relax]
\Quarter;
\advance\cnta 1
\draw [rotate=270,
color=\couleur!\the\numexpr 100-100*\the\cnta/\quarters\relax]
\Quarter;
\advance\cnta 1
\ifnum \cnta < \quarters
\repeat
\draw [thick,color=\couleur] (0,0) circle (1);
\end{tikzpicture}
\begin{tikzpicture}
\cnta 0
\def\ratio {0.95}
\def\quarters {180}
\def\couleur {blue}
\loop
\def\Quarter {(1+\Rescale{\cnta}{2},0) arc
(0:90:1+\Rescale{\cnta}{2} and 1+\Rescale{\cnta+1}{2})}
\draw [color=\couleur!\the\numexpr 100-100*\the\cnta/\quarters\relax]
\Quarter;
\advance\cnta 1
\draw [rotate=90,
color=\couleur!\the\numexpr 100-100*\the\cnta/\quarters\relax]
\Quarter;
\advance\cnta 1
\draw [rotate=180,
color=\couleur!\the\numexpr 100-100*\the\cnta/\quarters\relax]
\Quarter;
\advance\cnta 1
\draw [rotate=270,
color=\couleur!\the\numexpr 100-100*\the\cnta/\quarters\relax]
\Quarter;
\advance\cnta 1
\ifnum \cnta < \quarters
\repeat
\draw [thick,color=\couleur] (0,0) circle (1);
\end{tikzpicture}
\begin{tikzpicture}
\cnta 0
\def\ratio {0.97}
\def\quarters {240}
\def\couleur {green}
\loop
\def\Quarter {(1+\Rescale{\cnta}{2},0) arc
(0:90:1+\Rescale{\cnta}{2} and 1+\Rescale{\cnta+1}{2})}
\draw [color=\couleur!\the\numexpr 100-100*\cnta/\quarters\relax]
\Quarter;
\advance\cnta 1
\draw [rotate=90,
color=\couleur!\the\numexpr 100-100*\the\cnta/\quarters\relax]
\Quarter;
\advance\cnta 1
\draw [rotate=180,
color=\couleur!\the\numexpr 100-100*\the\cnta/\quarters\relax]
\Quarter;
\advance\cnta 1
\draw [rotate=270,
color=\couleur!\the\numexpr 100-100*\the\cnta/\quarters\relax]
\Quarter;
\advance\cnta 1
\ifnum \cnta < \quarters
\repeat
\draw [thick,color=\couleur] (0,0) circle (1);
\end{tikzpicture}
\end{document}