Cambie la orientación de la espiral en esta imagen tikz en 3D

Cambie la orientación de la espiral en esta imagen tikz en 3D

Estoy intentando crear una imagen '3D' usando diferentes ángulos de visión en Tikz (verMWEabajo). La imagen que he creado se puede ver eneste enlace.

Mi problema es que la espiral que he creado no está alineada con el eje negro. Específicamente, el eje de rotación de la espiral azul debe estar alrededor de la línea negra (no necesariamente a lo largo de todo el eje negro).

La espiral representa luz polarizada circularmente, como se demuestra.aquípor @MarkWibrow. ¿Cómo puedo alinear la espiral de modo que gire alrededor del eje que se muestra con la línea negra? Una solución parece estar dada enesta publicación, pero no he podido fusionarlo aquí.

Además, ¿cómo puedo reducir la amplitud de las espirales (es decir, círculos más pequeños)?

MWE

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{3d, shapes.multipart, angles, quotes}

\tikzset{axis/.style={black, very thick, ->}}

\newcommand{\rect}[1]{%
    \begin{scope}[canvas is xz plane at y=1.2]
        \draw[line join=round, thick, fill=green!50!black!40] (#1,-1.2) rectangle (#1+1.2,1.2);
    \end{scope}
    %
    \begin{scope}[canvas is xy plane at z=1.2]
        \draw[line join=round, thick, fill=green!50!black!25](#1,-1.2) rectangle (#1+1.2,1.2);
    \end{scope}
%
\begin{scope}[canvas is yz plane at x=#1]
    \draw[line join=round, thick, fill=green!50!black!10] (-1.2,-1.2) rectangle (1.2,1.2);
\end{scope}
}


\begin{document}

\pgfdeclarelayer{layer1}
\pgfdeclarelayer{layer2}
\pgfdeclarelayer{layer3}
\pgfdeclarelayer{layer4}
\pgfdeclarelayer{layer5}
\pgfdeclarelayer{layer6}
\pgfdeclarelayer{layer7}
\pgfdeclarelayer{layer8}

\pgfsetlayers{main, layer8, layer7, layer6, layer5, layer4, layer3, layer2, layer1}

\begin{tikzpicture}[x={(1cm,0.4cm)}, y={(8mm, -3mm)}, z={(0cm,1cm)}, line cap=round, line join=round]

    \draw[axis] (-1,0,0) -- (15,0,0);   

\begin{pgfonlayer}{layer8}
    \rect{14}
\end{pgfonlayer}        

\begin{pgfonlayer}{layer8}
    \draw[very thick] (13,0,0) -- (14,0,0);
\end{pgfonlayer}

\tikzset{%
    xyz path/.style args={\x=#1; \y=#2; \z=#3; (#4)}{
        insert path={
            \foreach \step [evaluate={\x=#1; \y=#2; \z=#3;}] in {#4}{   
                -- (\x, \y, \z) } 
        }
    },
    cosine path/.style args={#1:#2}{
        xyz path={\x=cos(\step); \y=0; \z=\step/360; (#1, 2, ..., #2)},
        insert path={ coordinate (cosine path end) }
    },
    sine path/.style args={#1:#2}{
        xyz path={\x=0; \y=sin(\step); \z=\step/360; (#1, 2, ..., #2)},
        insert path={ coordinate (sine path end) }
    },
    spiral path/.style args={#1:#2}{
        xyz path={\x=cos(\step); \y=sin(\step); \z=\step/360; (#1, 2, ..., #2)},
        insert path={ coordinate (spiral path end) }
    },
    marker/.style={
        insert path={
            node [fill, circle,  inner sep=0pt, minimum size=#1] {}
        }
    }
}

\def\lastangle{15}
\def\cycles{4}

\foreach \cycle in {0,...,\cycles}{
    \tikzset{shift={(0, 0, \cycle)}}
    \ifnum\cycle=\cycles
        \let\endangle=\lastangle
    \else
        \def\endangle{360}
    \fi

    \draw [transform shape, blue, very thick] (1, 0, 0) [spiral path={0:\endangle}];
}

\end{tikzpicture}
\end{document}

Respuesta1

He cambiado tu sistema de coordenadas para que sea diestro.

\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{3d}
\begin{document}
\begin{tikzpicture}[x={(-1cm,-0.4cm)}, y={(0.8cm, -0.3cm)}, z={(0cm,1cm)}, line join=round]
\draw[canvas is xz plane at y=1.2, thick, fill=green!50!black!40] (-14,-1.2) rectangle (-15.2,1.2);
\draw[canvas is xy plane at z=1.2, thick, fill=green!50!black!25] (-14,-1.2) rectangle (-15.2,1.2);
\draw[canvas is yz plane at x=-14, thick, fill=green!50!black!10] (-1.2,-1.2) rectangle (1.2,1.2);
\draw[very thick, ->] (-14,0,0) -- (0,0,0);
\draw[blue, very thick] plot[domain=-12:-1, samples=200, smooth, variable=\t] (\t,{0.5*cos(8*\t r)},{0.5*sin(8*\t r)});
\end{tikzpicture}
\end{document}

Caja 3D y una espiral alrededor de un eje.

La espiral va de -12a -1, tiene un radio de 0.5y 8controla el número de vueltas.

información relacionada