\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{positioning,matrix}
\begin{document}
\begin{tikzpicture}[Dotted/.style={% https://tex.stackexchange.com/a/52856/194703
line width=1.2pt,
dash pattern=on 0.01\pgflinewidth off #1\pgflinewidth,line cap=round,
shorten >=0.3em,shorten <=0.3em},
Dotted/.default=5]
\matrix[matrix of math nodes,nodes={circle,draw,minimum size=1.5em},
column sep=2em,row sep=1ex](mat) {
C_1 & D_1 \\
C_2 & D_2 \\[2em]
C_m & D_n \\
};
\draw[Dotted] (mat-2-1) -- (mat-3-1);
\draw[Dotted] (mat-2-2) -- (mat-3-2);
\foreach \X in {1,2,3}
{\foreach \Y in {1,2,3}
{\draw (mat-\X-1) -- (mat-\Y-2);}}
\matrix[matrix of math nodes,nodes={circle,draw,minimum size=1.5em},
column sep=1em,below=2em of mat,xshift=2em,
column 2/.style={column sep=2.5em}](mat2) {
E_1 & E_2 & E_p\\
F_1 &F_2 & F_p \\
};
\foreach \X in {1,2}
{ \draw[Dotted] (mat2-\X-2) -- (mat2-\X-3);}
\draw[Dotted];
\end{tikzpicture}
\end{document}
这是对上面链接的问题的引用,由@Schrodinger's Cat 回答
我想对代码进行更多操作。我想添加一条充满点的线,然后再添加一些节点。
我尝试使用\draw
,但没有得到所需的输出。有人能告诉我我做错了什么吗?
答案1
我建议你尝试理解这些代码的作用。它们实际上只是节点矩阵。
\matrix[matrix of math nodes,nodes={circle,draw,minimum size=1.5em}, ...]
你指示 Ti钾Z 在数学模式下排版节点的内容,并告诉它在每个节点周围画一个圆圈。使用
\foreach \X in {1,2,3}
{\draw[Dotted] (mat2-\X-2) -- (mat2-\X-3);
\draw[Dotted] (mat2-2-\X) -- (mat2-3-\X);}
您访问矩阵的节点,并用虚线连接它们。如果矩阵的名称为mat2
,则其节点的名称为mat2-<row>-<column>
,其中<row>
和<column>
表示相应节点的行和列索引。其余的只是矩阵的相对定位。
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{positioning,matrix}
\begin{document}
\begin{tikzpicture}[Dotted/.style={% https://tex.stackexchange.com/a/52856/194703
line width=1.2pt,
dash pattern=on 0.01\pgflinewidth off #1\pgflinewidth,line cap=round,
shorten >=0.3em,shorten <=0.3em},
Dotted/.default=5]
\matrix[matrix of math nodes,nodes={circle,draw,minimum size=1.5em},
column sep=2em,row sep=1ex](mat) {
C_1 & D_1 \\
C_2 & D_2 \\[2em]
C_m & D_n \\
};
\draw[Dotted] (mat-2-1) -- (mat-3-1);
\draw[Dotted] (mat-2-2) -- (mat-3-2);
\foreach \X in {1,2,3}
{\foreach \Y in {1,2,3}
{\draw (mat-\X-1) -- (mat-\Y-2);}}
\matrix[matrix of math nodes,nodes={circle,draw,minimum size=1.5em},
column sep=1em,row sep=1em,below=2em of mat,xshift=2em,
column 2/.style={column sep=2.5em}](mat2) {
E_1 & E_2 & E_p\\
F_1 & F_2 & F_p\\[2em]
F_1 & F_2 & F_p\\
};
\foreach \X in {1,2,3}
{\draw[Dotted] (mat2-\X-2) -- (mat2-\X-3);
\draw[Dotted] (mat2-2-\X) -- (mat2-3-\X);}
\end{tikzpicture}
\end{document}