正弦线排列

正弦线排列

我必须画出这个,我们可以看到一根电线是一种颜色,另一根电线是另一种颜色,连接在方形框中,每根电线都有一个与之相关的名称,然后重复(重复部分未在图中写出或标记)。
在此处输入图片描述 我想到使用正弦函数作为导线,尽管它们看起来不一样。
这是我的 MWE:

\documentclass[tikz]{standalone}
\begin{document}
    \begin{tikzpicture}[
    xscale=1,yscale=2,
    every plot/.append style={samples=100,domain=1.5:13.3},
    rotate=90]

    \begin{scope}[blue]
    \draw plot(\x,{sin(\x r) - 5});
    \draw plot(\x,{cos((\x+pi/2) r) - 2.5});
    \draw plot(\x,{sin(\x r)});
    \draw plot(\x,{cos((\x+pi/2) r) + 2.5});
    \draw plot(\x,{sin(\x r) + 5});
    \draw plot(\x,{cos((\x+pi/2) r) + 7.5});
    \end{scope}

    \draw [-,>=stealth] (1*pi/2,{sin(1*pi/2 r)}) -- node[above] {A} (1*pi/2,{cos((1*pi/2+pi/2) r)+2.5});
    \draw [-,>=stealth] (3*pi/2,{sin(3*pi/2 r)}) -- node[above] {B} (3*pi/2,{cos((3*pi/2+pi/2) r)-2.5});
    \end{tikzpicture}
\end{document}

我的知识非常有限,不仅无法为各个部分着色,也无法制作方框,我猜可能是写作只是选择合适的坐标来写作。我不知道我能否得到图中所示的曲线,因为它们与具有正弦函数的曲线不同。我仍然面临这个问题,我们如何在 TikZ 中实现这一点。

答案1

这是一个建议。

  1. 我定义了一种样式,使添加正弦注释变得相当简单。特别是,添加更多注释会很容易(但我无法理解你在屏幕截图上写的内容)。
  2. 现在有三个局部最大值,曲线从上到下延伸,这使得在我看来更容易编辑。
  3. A 和 B 框以循环方式添加。
  4. 我使用交替的颜色。

我希望这接近你想要的效果。遗憾的是,你的屏幕截图不够清晰。

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{decorations.markings,calc}
\tikzset{mark pos/.style args={#1/#2/#3/#4/#5}{postaction=decorate,decoration={markings,
  mark=at position #1 with {\path (0,#3*5pt) coordinate (aux0) (1,#3*5pt) coordinate
  (aux1);
  \pgftransformreset
  \path let \p1=($(aux1)-(aux0)$),\n1={#4*180+atan2(\y1,\x1)} in 
  (aux0) node[rotate=\n1,#5]{#2};} }}}
\begin{document}
    \begin{tikzpicture}[
    xscale=1,yscale=2,
    every plot/.append style={samples=100,domain=pi/2:6.5*pi},
    rotate=-90]

    \begin{scope}[blue,
        left mark/.style={mark pos/.list={{{1/12}/{left (1)}/-1/1/red},
        {{3/12}/{right (2)}/1/0/},{{5/12}/{left (3)}/-1/1/red},
        {{7/12}/{right (4)}/1/0/},{{9/12}/{left (5)}/-1/1/red},
        {{11/12}/{right (6)}/1/0/}}},
        right mark/.style={mark pos/.list={{{1/12}/{right (1)}/1/0/},
        {{3/12}/{left (2)}/-1/1/red},
        {{5/12}/{right (3)}/1/0/},
        {{7/12}/{left (4)}/-1/1/red},
        {{9/12}/{right (5)}/1/0/},
        {{11/12}/{left (6)}/-1/1/red}}}
        ]
    \foreach \X in {-5,0,5}
    {\draw[left mark]   plot(0.7*\x,{sin(\x r) +\X});}
    \foreach \X in {-2.5,2.5,7.5}
    {\draw[right mark]  plot(0.7*\x,{cos((\x+pi/2) r) +\X});}
    \foreach \X in {-5,0,5}
    {\draw[red,line width=0.6pt]    plot[domain=pi/2:3*pi/2](0.7*\x,{sin(\x r) +\X});
    \draw[red,line width=0.6pt] plot[domain=5*pi/2:7*pi/2](0.7*\x,{sin(\x r) +\X});
    \draw[red,line width=0.6pt] plot[domain=9*pi/2:11*pi/2](0.7*\x,{sin(\x r) +\X});}
    \foreach \X in {-2.5,2.5,7.5}
    {\draw[red,line width=0.6pt]    plot[domain=3*pi/2:5*pi/2](0.7*\x,{cos((\x+pi/2) r) +\X});
    \draw[red,line width=0.6pt] plot[domain=7*pi/2:9*pi/2](0.7*\x,{cos((\x+pi/2) r) +\X});
    \draw[red,line width=0.6pt] plot[domain=11*pi/2:13*pi/2](0.7*\x,{cos((\x+pi/2) r) +\X});}
    \end{scope}
    \foreach \X in {0,...,3}
    {\foreach \Z in {-3.75,1.25,6.25}
     {\node[draw,fill=white,minimum size=1cm] at ({0.7*2*\X*pi+0.7*0.5*pi},\Z){B};}}
    \foreach \X in {0,...,2}
    {\foreach \Z in {-6.25,-1.25,3.75}
    {\node[draw,fill=white,minimum size=1cm] at ({0.7*(2*\X+1)*pi+0.7*0.5*pi},\Z){A};}}
    \draw[latex-latex] (0.2*pi,-7) node[left]{$y$} -- (0.7*6.7*pi,-7) --
    (0.7*6.7*pi,8.5) node[below]{$x$};
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容