我怎样才能将点置于框的第一部分的中心?我想让它看起来对称。但不知道为什么点和箭头不会像框的第三部分那样在框的第一部分居中。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,shapes.multipart,chains,arrows.meta}
\begin{document}
\begin{tikzpicture}[
list/.style={minimum size=9mm,
rectangle split,
rectangle split parts=3,
draw,
rectangle split horizontal
},
dotarrow/.style={Circle-Stealth},
start chain
]
\node[list,on chain] (A) {};
\node[left of=A,xshift=-3mm] (1) {};
\node[right of=A,xshift=3mm] (2) {};
\draw[dotarrow] (A.three |- A.center) -- (2);
\draw[dotarrow] (A.one |- A.center) -- (1);
\end{tikzpicture}
\end{document}
答案1
有两个问题。一个是,正如 Percusse 指出的那样,箭头开头的圆圈dotarrow
并不完全位于给定的坐标处。第二个问题是,A.one
和A.three
锚点似乎位于略微奇怪的位置。第一个问题的简单解决方案是在箭头末端放置一个形状为实心圆的节点。更难的解决方案是制作一个dot
没有偏移的箭头修改版本。似乎简单的解决方案在这里就足够了。
为了解决第二个问题,锚点似乎A.one south
位于区域底部边缘的中心。因此,要获得两个边缘,请说:
\tikzset{dot/.style={circle,fill, inner sep=1.3pt}}
\draw (A.three south |- A.center) node[dot]{} -- (2);
\draw (A.one south |- A.center) node[dot]{} -- (1);
完整示例:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,shapes.multipart,chains,arrows.meta}
\begin{document}
\begin{tikzpicture}[
list/.style={minimum size=9mm,
rectangle split,
rectangle split parts=3,
draw,
rectangle split horizontal
},
dot/.style={circle,fill, inner sep=1.3pt},
-Stealth,
start chain
]
\node[list,on chain] (A) {};
\node[left of=A,xshift=-3mm] (1) {};
\node[right of=A,xshift=3mm] (2) {};
\draw (A.three south |- A.center) node[dot]{} -- (2);
\draw (A.one south |- A.center) node[dot]{} -- (1);
\end{tikzpicture}
\end{document}