想要在 TikZ 中制作以下形状函数吗?

想要在 TikZ 中制作以下形状函数吗?

想要让以下形状在 TikZ 中发挥作用在此处输入图片描述

\begin{tikzpicture}
\tikzstyle{every node}=[draw,shape=circle];
\draw (0,0)  --   (0,1)  node {1};
\draw (0,1)  --   (1,1)  node {2};
\draw (1,1)  --   (1,0)  node {3};
\draw (1,0) --    (0,0)  node {4};
\end{tikzpicture}
\begin{tikzpicture}
\tikzstyle{every node}=[draw,shape=circle];
\draw (0,0)  -- ++  (1,1)  node {1};
\draw (1,1)  -- ++  (1,-1) node {2};
\draw (0,0)  --  ++ (2,0)  node {3};
\end{tikzpicture}

答案1

尝试理解此代码,您就会知道如何绘制所有这些。

从坐标的定义开始。

\coordinate (1) at (0,0,2);

在点 处创建一个名为 的coordinate node(node无维度 ) 。意思是。 如果您需要将某个特定单位更改为、、 ... 稍后将使用 来引用点 (0,0,2) 。 无需记住其特定坐标。1(x,y,z)=(0,0,2)22cmcmmmin(1)

在每个坐标上放置第二个圆圈并添加标签。

    \fill (1) circle (1pt) node [below] {1};

将绘制并填充一个圆,圆心1pt位于坐标 处,圆心为半径(1 个点)1。圆的下方放置一个带文本的节点1。由于点 1 至 4 下方有标签,点 5 至 8 上方有标签,因此可以使用循环foreach

最后,draw坐标之间的线:

\draw[dashed] (1)--(4)--(3) (4)--(8);

从坐标 1 到 4 和 3画一条dashed线。接下来将笔放在坐标 4 上并画另一条线到坐标 8。

您可以使用nodescoordinates是节点)来定位其他节点。 JLDiaz 在他的评论中解释了如何使用calc语法(需要在序言中使用 \usetikzlibrary{calc})来做到这一点:

\coordinate (17) at ($(1)!.5!(5)$);

17在“线 (1)-(5) 上与 (1) 距离为 50% 的点”上定义一个新坐标(!.5! 表示 50%)。17定义坐标后,您可以再次应用\fill (17) circle (1pt) node [left] {17};该坐标来绘制圆和标签。

另一种语法可能是

\path (1) -- (5) coordinate[pos=0.5] (17);

意思是从 移动15pos=0.5从该路径移入一个名为 17 的坐标节点。此语法不使用calc库。

作为练习:您认为\coordinate (27) at ($(1)!.5!(7)$);会怎样?

在完整代码之前,我有个小建议。如果你被TiKZ大量的文档吓到了,可以看看

现在完整的代码

\documentclass[tikz, border=2mm]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}

\coordinate (1) at (0,0,2);
\coordinate (2) at (2,0,2);
\coordinate (3) at (2,0,0);
\coordinate (4) at (0,0,0);
\coordinate (5) at (0,2,2);
\coordinate (6) at (2,2,2);
\coordinate (7) at (2,2,0);
\coordinate (8) at (0,2,0);

\coordinate (17) at ($(1)!.5!(5)$);
\coordinate (27) at ($(1)!.5!(7)$);

\foreach \i in {1,...,4}
    \fill (\i) circle (1pt) node [below] {\i};

\foreach \i in {5,...,8}
    \fill (\i) circle (1pt) node [above] {\i};

\fill (17) circle (1pt) node [left] {17};
\fill (27) circle (1pt) node [above] {27};

\draw (1) --(2) --(3) --(7) --(6)--(5)--(8)--(7);
\draw (1)--(5) (2)--(6);
\draw[dashed] (1)--(4) --(3) (4)--(8);

\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容