为了理解扭索纹的创作,以及与我的帖子的关系使用 TikZ 重新创建扭索纹,我得到了下面的代码,
Guilloche[a_, b_, c_, d_, e_, f_] :=
PolarPlot[Evaluate[Flatten[{ Table[(c + Sin[a x + d]) + ((b + Sin[b x + e]) - (c + Sin[a x + d]))(f + Sin[a x + n/ Pi])/2, {n, 0, 19}] }] ], {x, 0, 2 Pi}, PlotPoints -> 200, Axes -> None, Frame -> False]
Guilloche[4, 8, 20, 4.7, 1.8, 1];
用 Mathematica 编写,应该会生成以下图像:
我下面的尝试编译但没有图像。
\documentclass[11pt]{scrartcl}
\usepackage[dvipsnames]{xcolor}
\usepackage{tkz-fct}
\begin{document}
\noindent\begin{tikzpicture}
\foreach \i in {1,...,19}{%
\tkzFctPolar[color=MidnightBlue,thick,domain=0:2*pi,samples=400]{(4 + sin(4*t + 4.7)) +((8 + sin(8*t + 1.8)) - (20 + sin(4*t + 4.7)))
(1 + sin(4*t + \i/ Pi))/2}}
\end{tikzpicture}
\end{document}
任何有关如何正确转换代码的帮助都将不胜感激。一般来说,Mathematica 代码应该可以生成不同的扭索纹,但我不知道如何将其实现为TikZ
从一段代码生成不同的扭索纹。
答案1
这是单位问题。您可以使用 mathematica 或 excel 或 maxima 或免费软件来计算一些值。之后很容易找到如何设置\tkzInit
。也许使用 pgfplots 更容易。
\documentclass{standalone}
\usepackage[dvipsnames]{xcolor}
\usepackage{tkz-fct}
\begin{document}
\noindent\begin{tikzpicture}
\tkzInit[xmin=-50,xmax=50,ymin=-50,ymax=50,xstep=5,ystep=5]
\foreach \i in {1,...,19}{%
\tkzFctPolar[color=MidnightBlue,thick,domain=0:4*pi,samples=400]{
(20 + sin(4*t + 4.7)) + ((8 + sin(8*t + 1.8)) - (20 + sin(4*t + 4.7)))*
(1 + sin(4*t + \i/ 3.14))/2}}
\end{tikzpicture}
\noindent\begin{tikzpicture}
\tkzInit[xmin=-50,xmax=50,ymin=-50,ymax=50,xstep=5,ystep=5]
\foreach \i in {1,...,10}{%
\tkzFctPolar[color=MidnightBlue,thick,domain=0:4*pi,samples=400]{
(10 + sin(4*t + 4.7)) + ((4 + sin(4*t + 1.8)) - (10 + sin(4*t + 4.7)))*
(1 + sin(4*t + \i/ 3.14))/2}}
\end{tikzpicture}
\noindent\begin{tikzpicture}
\tkzInit[xmin=-50,xmax=50,ymin=-50,ymax=50,xstep=5,ystep=5]
\foreach \i in {1,...,19}{%
\tkzFctPolar[color=MidnightBlue,thick,domain=0:4*pi,samples=400]{
(15 + sin(4*t + 4.7)) + ((8 + sin(8*t + 1.8)) - (15 + sin(4*t + 4.7)))*
(1.5 + sin(4*t + \i/ 3.14))/2}}
\end{tikzpicture}
\end{document}