如何绘制此图?

如何绘制此图?

我必须绘制此图,如图所示。但在 latex 中找不到这样做的方法,在 paint 中很容易做到,然后将其包含在 latex 中。但我可以写一些东西来得到如下图所示的图吗

在此处输入图片描述

描述:
1. 有两种不同类型的网络(或阶梯线),一种是黑色,另一种是绿色。它实际上横跨左右无限(我只需要画,就这三对……)。2
. 在图中书写的方式,如电线之间的最小距离。

答案1

下面的代码定义了一个命令

\wire[options]{name}{start}{height}{width}

绘制从 开始的单根导线start,其中每个套索又height高又width宽。重要点(起点、弯道、终点)被命名name-0name-7。一个有用的选项是导线的颜色。例如,

\wire[green]{G-1}{0,0}{2}{1}

将从坐标处开始绘制一条绿色电线(0,0),每个绞索具有高度2和宽度1;这些点被命名G-1-0G-1-7

下面的代码使用\foreach循环绘制了三对黑色/绿色的电线,电线名称分别为B-0G-0B-1G-1B-2G-2。为了说明名称的用法,一些距离用一些任意文本标记。

在此处输入图片描述

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}

\newcommand\wireheight{2} % height of one segment
\newcommand\wirewidth{1}  % width of a segment
\newcommand\wiredist{0.5} % distance between wires
\pgfmathsetmacro\pairdist{2*(\wirewidth+\wiredist)} % distance between pairs of wires

% \wire[options]{name}{start}{height}{width}
\newcommand\wire[5][]%
  {\draw[#1]
    (#3)            coordinate (#2-0)
    -- ++(0,#4)     coordinate (#2-1)
    -- ++(#5,0)     coordinate (#2-2)
    -- ++(0,#4)     coordinate (#2-3)
    -- ++(-#5,0)    coordinate (#2-4)
    -- ++(0,#4)     coordinate (#2-5)
    -- ++(#5,0)     coordinate (#2-6)
    -- ++(0,0.5*#4) coordinate (#2-7);
  }

\begin{document}
\begin{tikzpicture}[rounded corners,>=stealth, shorten >=1pt, shorten <=1pt]
  \foreach \i in {0,...,2}
    {\wire[thick]{B-\i}{\i*\pairdist,0}{\wireheight}{\wirewidth}
     \wire[thick,green]{G-\i}{{(\i+1)*\pairdist-\wiredist},0}{\wireheight}{-\wirewidth}
    }
  \draw[<-] ($(B-0-2)!0.5!(B-0-3)$) -- +(-0.5,0);
  \draw[<-] ($(G-0-2)!0.5!(G-0-3)$) -- +(0.5,0) node[above]{5mm};
  \draw[<-] ($(G-0-4)!0.5!(G-0-5)$) -- +(-0.5,0);
  \draw[<-] ($(B-1-4)!0.5!(B-1-5)$) -- +(0.5,0) node[above]{7mm};
  \draw[<->] ($(B-1-0)!0.5!(B-1-1)$) -- node[above]{10mm} ($(G-1-0)!0.5!(G-1-1)$);
  \draw[<->] ($(G-1-2)!0.5!(G-1-3)$) -- node[above]{9mm} ($(B-2-2)!0.5!(B-2-3)$);
\end{tikzpicture}
\end{document}

相关内容