5

I’ve racked my brain for weeks trying to create a .gif which is a moving version of what the below diagram represents. radiation for accelerating charge

The goal is to start with point (A) and (B) at the same position (origin) with the black lines diverging away from that point.

Then, shift (B) to the right to an arbitrary point. As (B) shifts right, it creates a pulse (the ring) that radiates outward.

As the ring radiates outward, it reveals the red lines, which diverge away from (B) as it moves.

My current progress is:

\documentclass[tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
  \foreach\radius in{1,...,10}{
    \begin{tikzpicture}
    \def\innerring{\radius/10-.08}
    \def\dottoinner{\radius/10+.08}
    \def\outerring{\radius/10}

    \draw [color=white] (-1,0) -- (1,0); %Used to keep frame the same size
    \draw [color=white] (0,-1) -- (0,1); %Used to keep frame the same size


    %When the dot is moving
    \ifnum\numexpr\radius<4
      %\draw [color=red] (\innerring, 0) -- (-\innerring,.2); %tried, failed, try again
      \draw [color=red] (\innerring, 0) -- (-\dottoinner,0);
      \node (A) at (\innerring, 0) [circle,fill,inner sep=.7pt]{};

    %Whent the dot is no longer moving
    \else
      %\draw [color=red] (.4-.08, 0) -- (-\innerring*.707,\innerring*.5); %tried, failed, try again
      \draw [color=red] (.4-.08, 0) -- (-\dottoinner,0);
      \node (B) at (.3, 0) [circle,fill,inner sep=.7pt]{};
    \fi

  %The pulse of radiation  
  \draw [thin] (0,0) circle[radius=\outerring] node (C) {};
  \draw [thin] (0,0) circle[radius=\innerring] node (D) {};

  \end{tikzpicture}
  }
\end{document}

Which produces the gif:

enter image description here

The crux of the issue is that I can't seem to come up with an expression to relate the non-horizontal lines from the point (B) to the inner circle without having them change angles as the circles expands.

All packages are available to me for this project.

2
  • While I do not have a definitive answer yet (I have begun working on it) I assume that this is for illustrating how accelerating charges radiate away energy in the form of an EM wave?
    – sab hoque
    Commented Jul 14, 2019 at 13:53
  • 1
    @sabhoque Thank you for your time and yes--it is! I tried using arcs, and some trigonometry relating the vertical coordinate of point on the circle, but yet to solidify a good expression. I looked into polar coodinates with not the best results either.
    – EigenQ
    Commented Jul 14, 2019 at 14:06

2 Answers 2

11

It is a very simple computation. The x coordinate of the circle center B is given by

  B_x = r * a ,

where r is the radius of the circle and 0<a<1 is a velocity. The rays emitted from B under an angle alpha have the parametrization

 gamma(t) = (B_x + t*cos(alpha), t*sin(alpha)) .

Their intersection with the circle around A of radius r can be obtained by demanding that

|gamma(t_crit)|^2 = r^2 . 

This is a quadratic equation, which has a unique positive solution, a simple function tcrit that I punched in the following code.

\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\foreach \R in {0.2,0.3,...,4.5}
{\begin{tikzpicture}[declare function={a=0.6; % velocity
 tcrit(\r,\ang)=(-2*a*\r*cos(\ang)+sqrt(2)*sqrt(\r*\r*(2-a*a+a*a*cos(2*\ang))))/2;}]
 \clip (-5,-5) rectangle (5,5);
 \foreach \ang in {0,22.5,...,337.5}
 {\draw[very thick] (a*\R,0) -- ++(\ang:{tcrit(\R,\ang)}) -- 
 (\ang:1.2*\R) -- (\ang:10);}
 \draw[thick,even odd rule,fill=white,fill opacity=0.5] (0,0) circle[radius=\R] 
 circle[radius=1.2*\R];
\end{tikzpicture}}
\end{document}

enter image description here

10
  • 1
    Very nice solution (+1).
    – user31034
    Commented Jul 14, 2019 at 20:54
  • 1
    I recommend changing it to \R+0.3 instead of 1.2*\R because the inner and outer ring travel at the same speed. These changes can be ammended by changing the relevant sections to {\draw[very thick] (a*\R,0) -- ++(\ang:{tcrit(\R,\ang)}) -- (\ang:\R+0.3) -- (\ang:10);} and \draw[thick,even odd rule,fill=white,fill opacity=0.5] (0,0) circle[radius=\R] circle[radius=\R+0.3]; . Nonetheless very good answer!
    – sab hoque
    Commented Jul 15, 2019 at 1:09
  • 1
    Strange, doing as I suggested results in the intermediate line cutting through the inner circle to get to the outer circle. I gues for artistic/diagramatic purposes as you have is more appropriate but for a more physically correct model \R+0.3 is appropriate
    – sab hoque
    Commented Jul 15, 2019 at 1:18
  • 1
    From what I asked the OP it appears to be a simulation of this
    – sab hoque
    Commented Jul 15, 2019 at 4:40
  • 1
    which is from here an explanation as to why accelerating charges radiate EM waves
    – sab hoque
    Commented Jul 15, 2019 at 4:51
7

I am not particularly happy with this answer as it takes a long time to render and frame 1 and 3 is a bit dodgy (still trying to fix this) but here it is:

\documentclass[tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,intersections}

\begin{document}
  \foreach\radius in{1,...,10}{
    \begin{tikzpicture}[scale=10]
    \def\innerring{\radius/10-.08}
    \def\dottoinner{\radius/10+.08}
    \def\outerring{\radius/10}
    \def\dot{\radius/10-0.1}

    \node at (-1,-1) {};
    \node at (1,1) {};

    \foreach \x in {0,30,...,330} {
        \draw (\x:\outerring) -- (\x:1.5);
    }
    \draw [thin] (0,0) circle[radius=\outerring];
    \draw [thin] (0,0) circle[radius=\innerring];

    %When the dot is moving
    \ifnum\numexpr\radius<4
%      \draw [color=red] (\innerring, 0) -- (-\innerring,.2); %tried, failed, try again
%      \draw [color=red] (\innerring, 0) -- (-\dottoinner,0);
      \node (A) at (\dot, 0) [circle,fill,inner sep=2pt]{};
      \foreach \x in {0,30,...,330} {
            \begin{scope}
            \clip (0,0) circle[radius=\innerring];
            \draw[name path=P1,red] (A) -- +(\x:5);
            \end{scope}
            \draw[name path=P2,draw opacity=0] (0,0) circle (\innerring);
            \path [name intersections={of=P1 and P2,by=E}];
            \draw[black!50] (E) -- (\x:\outerring);
        }


    %Whent the dot is no longer moving
    \else
      %\draw [color=red] (.4-.08, 0) -- (-\innerring*.707,\innerring*.5); %tried, failed, try again
%      \draw [color=red] (.4-.08, 0) -- (-\dottoinner,0);
      \node at (A) [circle,fill,inner sep=2pt]{};
      \foreach \x in {0,30,...,330} {
        \begin{scope}
        \clip (0,0) circle[radius=\innerring];
        \draw[name path=P1,red] (A) -- +(\x:5);
        \end{scope}
        \draw[name path=P2,draw opacity=0] (0,0) circle (\innerring);
        \path [name intersections={of=P1 and P2,by=E}];
        \draw[black!50] (E) -- (\x:\outerring);
      }
    \fi

  \end{tikzpicture}
  }
\end{document}

I based it off the image you had at the beginning

enter image description here

You must log in to answer this question.

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