Estoy intentando reproducir la forma de espiral en la imagen de abajo en TikZ, no me interesan los átomos ni el texto, solo la espiral. Quiero que la espiral sea de color verde como en la imagen.
Estaba considerando de alguna manera juntar varias curvas sinusales, sin embargo, parece una forma realmente ineficiente de hacerlo, y no sé cómo colorearía la forma usando ese método.
Respuesta1
Aquí hay una posible solución:
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\colorlet{color 2}{lime!50!gray}
\colorlet{color 1}{white}
\foreach \dx in {0,2,4}{
\begin{scope}[xshift=\dx cm]
\draw[draw=gray,top color=color 2,bottom color=color 1]
(0,0) -- ++(1,0) cos ++(.5,1) sin ++(.5,1) -- ++(-1,0) cos ++(-.5,-1) sin ++(-.5,-1) -- cycle;
\end{scope}
}
\foreach \dx in {0,2,4}{
\begin{scope}[xshift=1cm + \dx cm]
\draw[draw=gray,top color=color 1,bottom color=color 2]
(0,2) -- ++(1,0) cos ++(.5,-1) sin ++(.5,-1) -- ++(-1,0) cos ++(-.5,1) sin ++(-.5,1) -- cycle;
\end{scope}
}
\end{tikzpicture}
\end{document}
Respuesta2
Inspirándose (y codificando) en Paul, aquí hay una espiral estrecha que utiliza ángulos in
y out
, solo para mostrar otra forma:
\documentclass[tikz,border=5]{standalone}
\begin{document}
\begin{tikzpicture}[x=3cm,y=0.8cm]
\colorlet{color 2}{lime!50!gray}
\colorlet{color 1}{white}
\foreach \dx in {0,6,12}{
\begin{scope}[xshift=\dx cm]
\draw[draw=gray,top color=color 2,bottom color=color 1]
(0,0) -- ++(1,0) to[out=0,in=180] ++(1,3) -- ++(-1,0) to[out=180,in=0] ++(-1,-3) -- cycle;
\end{scope}
}
\foreach \dx in {0,6,12}{
\begin{scope}[xshift=3cm + \dx cm]
\draw[draw=gray,top color=color 1,bottom color=color 2]
(0,3) -- ++(1,0) to[out=0,in=180] ++(1,-3) -- ++(-1,0) to[out=180,in=0] ++(-1,3) -- cycle;
\end{scope}
}
\end{tikzpicture}
\end{document}
Respuesta3
Aquí está el código de Paul Gaborit reescrito con triple foreach
para hacerlo más corto;).
\begin{tikzpicture}
\colorlet{color 1}{lime!50!gray}
\colorlet{color -1}{white}
\foreach \s [evaluate=\s as \w using int(-\s)] in {1,-1} {
\foreach \t in {0,1,2} {
\draw[draw=gray,top color=color \s,bottom color=color \w, xshift=2*\t cm, xscale=\s]
(-1.5,-1) \foreach \i in {1,-1} {cos ++(\i/2,\i) sin ++(\i/2,\i) -- ++(\i,0)};
}
}
\end{tikzpicture}
Nota:Llegué a actualizar usando la sugerencia de Ignasi de usar la simetría central entre (-1.5,-1) cos ++(.5,1) sin ++(.5,1) -- ++(1,0)
e cos ++(-.5,-1) sin ++(-.5,-1) -- cycle
introduciendo una tercera \foreach
.