有人能帮我编写代码来得到与下图相同的图形吗?
\begin{tikzpicture}
\matrix[column sep=2em, row sep=10ex, inner sep=0pt, minimum width=6pt] (M) {%
\node[mypoint, label={[left,xshift=-4pt]V1}, fill=green] (V1) {}; & & & & & \node[mypoint, label={above:$V_{2}$}] (V2) {};\\
\node[mypoint, label={[left,xshift=-4pt]V5}] (V5) {}; & & & & &
\node[mypoint, label={below left:V4}] (V4) {}; & & & & &
\node[mypoint, label={[right,xshift=2pt]V3}] (V3) {};\\
};
\draw (V1) -- (V2);
\draw (V5) -- (V1);
\draw (V5) -- (V4);
\end{tikzpicture}
答案1
\documentclass[12pt]{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (-2.,0.)-- (2.,0.);
\draw(-2.,-1.) circle (1.cm);
\draw (-2.,4.)-- (-2.,0.);
\draw [rotate around={0.:(0.,4.)}] (0.,4.) ellipse (2.1cm and 0.5cm);
\draw (0.2,5.2) node[anchor=north west] {$e_1$};
\draw (0.2,3.4) node[anchor=north west] {$e_2$};
\draw (2.1,4.3) node[anchor=north west] {$v_4$};
\draw (-2.7,4.4) node[anchor=north west] {$v_3$};
\draw (-2.7,2.3) node[anchor=north west] {$e_3$};
\draw (2.2,0.4) node[anchor=north west] {$v_1$};
\draw (-2.8,0.4) node[anchor=north west] {$v_2$};
\draw (-2.8,-2.0) node[anchor=north west] {$e_4$};
\draw (0.1,-0.1) node[anchor=north west] {$e_5$};
\begin{scriptsize}
\draw [fill=black] (-2.,0.) circle (3.5pt);
\draw [fill=black] (2.,0.) circle (3.5pt);
\draw [fill=black] (-2.,4.) circle (3.5pt);
\draw [fill=black] (2.,4.) circle (3.5pt);
\end{scriptsize}
\end{tikzpicture}
\end{document}
答案2
让我尝试解释一下代码。
\matrix[<options>] (<name>) {<code>};
生成一个matrix
(类似于一个tabular
)<options>
,其中包含一些称为的<name>
,其行在中指定<code>
。我认为您可以搜索我在中使用的各种选项的含义,这可能是一项很好的练习TikZ 和 PGF 手册。
\node[<options>] (<name>) {<text>};
生成一个名为 的点<name>
,其特征由 指定,<options>
部分位于<text>
内部。由于您的节点内部没有文本,但在外部,因此我使用了选项label={[<label-options>]<label-text>}
,该选项在节点附近放置一个带有文本 的标签<label-text>
(标签的位置由 指定<label-options>
)。请注意,由于您的所有节点都是circle, fill=black
,因此我还创建了一个style
名为 的点mypoint
,以避免每次都编写通用选项。
\draw (<node-start>) to [<options>] node[<label-position>]{<label-text>} (<node-end>);
<node-start>
从到画一条线<node-end>
,其中 一些<options>
位于<label-text>
处<label-position>
。
\draw (<node>) arc (<start-angle>:<stop-angle>:<radius>) node[<label-position>] {<label-text>};
绘制一个圆弧,<node>
以 为起点,以<start-angle>
为<stop-angle>
终点,半径为<radius>
,<label-text>
位于<label-position>
。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\tikzset{%
mypoint/.style={circle, fill=black},
}
\begin{document}
\begin{tikzpicture}
\matrix[column sep=6em, row sep=10ex, inner sep=0pt, minimum width=6pt] (M) {%
\node[mypoint, label={[left,xshift=-6pt,yshift=-3pt]V3}] (V3) {}; & \node[mypoint, label={[right,xshift=6pt,yshift=-3pt]V4}] (V4) {}; \\
\node[mypoint, label={[right,xshift=2pt,yshift=4pt]V2}] (V2) {}; & \node[mypoint, label={[right,xshift=6pt,yshift=-3pt]V1}] (V1) {}; \\
};
\draw (V3) to [bend left] node[above]{e1} (V4);
\draw (V3) to [bend right] node[below]{e2} (V4);
\draw (V3) -- node[left]{e3} (V2);
\draw (V2) -- node[below]{e5} (V1);
\draw (V2) arc (45:360+45:4mm) node[below left,xshift=-14pt,yshift=-14pt] {e4};
\end{tikzpicture}
\end{document}
一些忠告:
- 阅读教程TikZ 和 PGF 手册,特别是第 5 节
- 阅读我们的TeX.SX 入门指南(红色字为链接,请点击!)
- 把一个完整的最小工作示例(MWE)你已经尝试过的方法,而不仅仅是你之前的一个问题的答案片段
- 接受答案这解决了你的问题,你对之前的问题有很多答案,但你还没有接受任何一个。