如何绘制这些空的开放点?

如何绘制这些空的开放点?
\documentclass[border=2mm,tikz]{standalone}

\usepackage{textcomp}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[scale=0.3]
    \draw
        (1, 2)
        node {\textopenbullet}
        node[below] {$(1, 2)$}
        rectangle (8, 4)
        rectangle (6, 11)
        rectangle (13, 13)
        node {\textopenbullet}
        node[above] {$(13, 13)$};
\end{tikzpicture}


\end{document}

我如何确保节点 (1,2) 只是一个空的白色圆圈?

谢谢!

在此处输入图片描述

答案1

我喜欢避免使用fill=white。虽然rectangle路径运算符不“关心”节点,但正交路径运算符-|-|会关心。使用to path,可以轻松重新创建rectangle由两个节点组成的路径。(由于路径运算符效果不佳-|rectangle路径上有节点\tikztonodes或者,我在定义中省略了它,to path但如果需要的话,可以轻松添加它。)

如果你增加outer sep=0pt样式的定义circ,线条就会被绘制到圆形线的中间,这样你就可以轻松避免(几乎不引人注意的)连接问题,如下图所示。在 TiKZ 中更好地将线与节点拟合。另一个解决方案是使用line cap=roundline cap=rectline cap=butt默认)。

代码

\documentclass[border=2mm,tikz]{standalone}
\usepackage{tikz}
\tikzset{rect/.style={to path={-| (\tikztotarget) -| (\tikztostart) (\tikztotarget)}}}
\begin{document}
\begin{tikzpicture}[scale=0.3,
  circ/.style={shape=circle, inner sep=1pt, draw, node contents=}]
    \draw node (c1) at (1, 2) [circ, label=below:{$(1,2)$}]
          node (c2) at (13,13)[circ, label=above:{$(13,13)$}]
     (c1) to[rect] (8,4) to[rect] (6,11) to[rect] (c2);
\end{tikzpicture}
\end{document}

答案2

我将使用节点样式而不是\textopenbullet节点文本。

在此处输入图片描述

代码:

\documentclass[border=2mm,tikz]{standalone}

\usepackage{textcomp}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[
  scale=0.3,
  mydot/.style={
    circle,
    fill=white,
    draw,
    outer sep=0pt,
    inner sep=1.5pt
  }
]
    \draw
        (1, 2)
        node[mydot] {}
        node[below] {$(1, 2)$}
        rectangle (8, 4)
        rectangle (6, 11)
        rectangle (13, 13)
        node[mydot] {}
        node[above] {$(13, 13)$};
\end{tikzpicture}

\end{document}

答案3

您可以设置一个坐标,然后在其上绘制并填充:

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

\begin{document}

\begin{tikzpicture}[scale=0.3]
    \draw
        (1, 2)
        node (here) [coordinate] {}
        node[below] {$(1, 2)$}
        rectangle (8, 4)
        rectangle (6, 11)
        rectangle (13, 13)
        node (alsohere) [coordinate] {}
        node[above] {$(13, 13)$};

    \draw [fill=white] (here) circle[radius= 0.5 em]; 
    \draw [fill=white] (alsohere) circle [radius= 0.5 em]; 
\end{tikzpicture}

\end{document}

给出:

在此处输入图片描述

相关内容