质心框架中的粒子碰撞图

质心框架中的粒子碰撞图

我正在研究费曼图,我想在质心框架中绘制粒子相互作用,以直观地展示情况的运动学。我该如何快速绘制它?我正在考虑使用 tikz 包,因为我在绘制费曼图时对它有点熟悉。但我不知道如何开始绘制不是这样的图

任何帮助都非常感谢!我真的不知道如何绘制简单的(非)弹性碰撞...

类似于左边的图片 在此处输入图片描述

答案1

这是实现此目的的一种方法。

结果

战略

  • 使用,它是-pathes\pic的一种宏Tikz
  • \picxy-系统、com-框架和lab-框架设计 3s
  • 根据需要放置

Documentclass 和包/库

  • 对于开发来说使用standalone更好
  • arrows.meta允许您修改箭头尖,或使用预定义的箭头尖
  • anglesquotes用于绘制和标记角度
\documentclass[10pt,border=3mm,tikz]{standalone}% nicer for development
\usetikzlibrary{arrows.meta}                    % provides arrow tips etc.
\usetikzlibrary{angles,quotes}                  % to draw angles

xy-pic

所有的\pics 都在 style 部分中定义,这里是在 的开头tikzpicture。您也可以改用\tikzset

在 pic 语句中,您只需绘制,即放置一组路径语句。想象一下拥有自己的画布,即只需像在任何其他画布中一样引用坐标。放置stikzpicture时,将使用正确的绝对位置。\picTikz

除了通过 3 个点画一条线,两端都有箭头外,此路径还包含两个节点,放置轴标签,并根据需要进行移动,在此路径结束之前;

,请注意末尾的逗号,因为这些图片是在样式部分中定义的。

    xy/.pic={   % the coordinate system
        \draw[<->] (1,0) node[xshift=1.5mm] {x} -- (0,0) 
                    -- node[yshift=1.5mm] {y} (0,1);
    },

实验室图片

相同的想法,但包含更多内容。

这些坐标对于稍后绘制角度很有用:这需要 3 个坐标。

这些向量只是带有一个箭头的线,再次放置标签。我本可以使用 (-1.4,0) 的坐标,但根本没有这样做。above将节点文本移到路径上方,同时pos=.4midway == pos.5将其沿着要绘制的路径移动。对于 V'2,使用极坐标中的移位很有用。

角度只是一种特殊的东西\pic,你可以指定它们的外观。最重要的是要正确排列这 3 个点的顺序。

为了方便起见,我将标题与lab-整合在一起\pic。这可能是也可能不是一个好主意,因为这样当你改变向量时,你需要重新调整它们的位置。

    lab/.pic={  % the lab-frame
        % ~~~ most needed coordinates ~~~~~~~~~~~~~~~~~~~~~~~~~
        \coordinate (A) at (0,0);   % the point of collision 
        \coordinate (B) at (40:1.3);    % V'1 
        \coordinate (C) at (-50:1.3);   % V'2
        \coordinate (D) at (15mm,0);    % end point of reference line
        % ~~~ vectors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        \draw[->]   (-1.4,0) -- node[above,midway] {$\vec{V_1}$} (A);   
        \draw[->]   (A)      -- node[above,pos=.4] {$\vec{V'_1}$} (B);  
        \draw[->]   (A)      -- node[shift=(230:3mm),pos=.4] {$\vec{V'_2}$} (C);    
        \draw[dotted]   (A) -- (D);
        % ~~~ angles ~~~~~~~~~~~
        \pic[draw,<->,angle radius=7mm,"$\psi$"]    {angle={D--A--B}};
        \pic[draw,<->,angle radius=8mm,"$\zeta$"]   {angle={C--A--D}};
        % ~~~ title ~~~~~~~~~~~~~~~~
         \node at (0,2) {laboratory frame};
    },

漫画

这里没有什么新内容,除了坐标(A1)稍微向右移动,以及对标题位置进行一些细微的调整。

将你想要的绘图放在一起

现在,您需要做的就是放置 3 \pic

    % ~~~ intended overall drawing ~~~~~~~~~
    \pic at (0  ,0) {xy};
    \pic at (3.5,0) {com};
    \pic at (7,  0) {lab};

展示潜力

现在您可以根据需要放置 3 张图片的任意多个副本。例如,您甚至可以旋转它、更改其颜色并保持形状不变。

    % ~~~ demonstrating the potential ~~~~~~~~~~~~~~~~
    \pic[rotate=-30,transform shape,red!80!blue!90] at (4,-5) {lab};

代码

\documentclass[10pt,border=3mm,tikz]{standalone}% nicer for development
\usetikzlibrary{arrows.meta}                    % provides arrow tips etc.
\usetikzlibrary{angles,quotes}                  % to draw angles

\begin{document}
 \begin{tikzpicture}[
    > = {Stealth},              % overwriting default tip   
    xy/.pic={   % the coordinate system
        \draw[<->] (1,0) node[xshift=1.5mm] {x} -- (0,0) 
                    -- node[yshift=1.5mm] {y} (0,1);
    },
    lab/.pic={  % the lab-frame
        % ~~~ most needed coordinates ~~~~~~~~~~~~~~~~~~~~~~~~~
        \coordinate (A) at (0,0);   % the point of collision 
        \coordinate (B) at (40:1.3);    % V'1 
        \coordinate (C) at (-50:1.3);   % V'2
        \coordinate (D) at (15mm,0);    % end point of reference line
        % ~~~ vectors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        \draw[->]   (-1.4,0) -- node[above,midway] {$\vec{V_1}$} (A);   
        \draw[->]   (A)      -- node[above,pos=.4] {$\vec{V'_1}$} (B);  
        \draw[->]   (A)      -- node[shift=(230:3mm),pos=.4] {$\vec{V'_2}$} (C);    
        \draw[dotted]   (A) -- (D);
        % ~~~ angles ~~~~~~~~~~~
        \pic[draw,<->,angle radius=7mm,"$\psi$"]    {angle={D--A--B}};
        \pic[draw,<->,angle radius=8mm,"$\zeta$"]   {angle={C--A--D}};
        % ~~~ title ~~~~~~~~~~~~~~~~
         \node at (0,2) {laboratory frame};
    },
    com/.pic={  % center of mass frame
        % ~~~ most needed coordinates ~~~~~~~~~~~~~~~~~~~~~~~~~
        \coordinate (A)  at (0,0);      % the point of collision 
        \coordinate (B)  at (40:13mm);  % v'1 
        \coordinate (A1) at (.2,0);     % slightly shifted towards the right    
        \coordinate (C)  at (230:13mm); % v'2
        \coordinate (D)  at (1.5,0);    % 
        % ~~~ vectors ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        \draw[->]       (-1.3,0) -- node[above,midway] {$\vec{v_1}$} (A);
        \draw[->]       (A) -- node[above,pos=.4] {$\vec{v'_1}$} (B);   
        \draw[->]       (D) -- node[below,pos=.35] {$\vec{v_2}$} (A1);
        \draw[->]       (A1) -- node[right,pos=.5] {$\vec{v'_2}$} (C);  
        % ~~~ angle ~~~~~~~~~~~
        \pic[draw,<->,angle radius=9mm,"$\theta$"]  {angle={D--A--B}};
        % ~~~ title ~~~~~~~~~~~~~~~~
         \node at (0,2.05) {center of mass frame};
    },
 ]
    % ~~~ intended overall drawing ~~~~~~~~~
    \pic at (0  ,0) {xy};
    \pic at (3.5,0) {com};
    \pic at (7,  0) {lab};
    
    % ~~~ demonstrating the potential ~~~~~~~~~~~~~~~~
    \pic[rotate=-30,transform shape,red!80!blue!90] at (4,-5) {lab};

 \end{tikzpicture}
\end{document}

相关内容