3

I'm trying to recreate this image: DisksWithCylindricalAxisAxisymmetric

The figure is representing an axisymmetric representation (cylindrical coordinate system) of 2 planar coils of wire. I am wanting to add some intuition to the reader, showing them that we represent the problem on the plane, but actually it is a "3d" model.

Here is a MWE:

\documentclass[border=7pt]{standalone}

%%%%%%%%%%

\usepackage{tikz}
\usetikzlibrary{3d}

%%%%%%%%%%%


\begin{document}

    \begin{tikzpicture}[scale=4.5]

    \tikzset{zxplane/.style={canvas is zx plane at y=#1,very thin}}
    \tikzset{yxplane/.style={canvas is yx plane at z=#1,very thin}}

    % Coil 1
    \begin{scope}[zxplane=-0.1] % Reflection
        \draw[fill=blue!40,opacity=0.8,even odd rule] (0,0) circle (0.1) (0,0) circle (0.42);
    \end{scope}

    % Coil 2
    \begin{scope}[zxplane=0.175] % Secondary
        \draw[fill=green!40,opacity=0.8,even odd rule] (0,0) circle (0.228) (0,0) circle (0.428);
    \end{scope}

    % Plane
    \draw [fill=black, opacity=0.2] (0,-0.5) rectangle (0.5, 0.5);
    \draw [dashed] (0, -0.5) -- (0, 0.5);

    \end{tikzpicture}

\end{document}

Which currently looks like this:

MWE

I don't know how to make the plane break the loops. Any help would be much appreciated. Also the coils look lopsided, would be nice to have them straight.

1 Answer 1

4

Welcome to TeX.SE! You are already close. I introduce 3d orthographic coordinates by loading tikz-3dplot and also draw things in the order: half-coils in the back, plane and finally half-coils in the foreground.

\documentclass[tikz,border=7pt]{standalone}
\usepackage{tikz-3dplot}
\usetikzlibrary{3d}
%%%%%%%%%%%
\begin{document}
\tdplotsetmaincoords{70}{0}
\begin{tikzpicture}[tdplot_main_coords,scale=4.5,
xyplane/.style={canvas is xy plane at z=#1,very thin}]
%     \tikzset{zxplane/.style={canvas is zx plane at y=#1,very thin}}
%     \tikzset{yxplane/.style={canvas is yx plane at z=#1,very thin}}

    % Coil 1 in the back
    \begin{scope}[xyplane=-0.1] % Reflection
        \clip(-0.5,0) rectangle (0.5,1);
        \draw[fill=blue!40,opacity=0.8,even odd rule] (0,0) circle (0.1) (0,0) circle (0.42);
    \end{scope}

    % Coil 2 in the back
    \begin{scope}[xyplane=0.175] % Secondary
        \clip(-0.5,0) rectangle (0.5,1);
        \draw[fill=green!40,opacity=0.8,even odd rule] (0,0) circle (0.228) (0,0) circle (0.428);
    \end{scope}

    % Plane
    \begin{scope}[canvas is xz plane at y=0]
    \draw [fill=black, opacity=0.2] (0,-0.5) rectangle (0.5, 0.5);
    \draw [dashed] (0, -0.5) -- (0, 0.5);
    \end{scope}

    % Coil 1 in the front
    \begin{scope}[xyplane=-0.1] % Reflection
        \clip(-0.5,0) rectangle (0.5,-1);
        \draw[fill=blue!40,opacity=0.8,even odd rule] (0,0) circle (0.1) (0,0) circle (0.42);
    \end{scope}

    % Coil 2 in the front
    \begin{scope}[xyplane=0.175] % Secondary
        \clip(-0.5,0) rectangle (0.5,-1);
        \draw[fill=green!40,opacity=0.8,even odd rule] (0,0) circle (0.228) (0,0) circle (0.428);
    \end{scope}

\end{tikzpicture}
\end{document}

enter image description here

You can play with the view angles, which are set by \tdplotsetmaincoords{70}{0}.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .