我有以下一段 tikz 代码:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[>=latex]
\draw (2,2) circle [radius=2pt];
\draw (3,3) circle [radius=2pt];
\path[inner sep=0pt] (2,2) ++(45:2pt) node (A) {};
\path[inner sep=0pt] (3,3) ++(225:2pt) node (B) {};
\draw[-] (A) -- (B);
\end{tikzpicture}
\end{document}
我想要连接两个圆的地方,用一条线连接它们。点 A 和 B 应该在圆上,但不幸的是它们稍微偏离了。我该如何修复现有代码?
答案1
一个节点通常有一个内容。在本例中,它是空的,但节点之间的线更复杂,有 等inner sep
,outer sep
但可以使用中心点:
\draw (A.center) -- (B.center);
还有一种更简单的方法。更简单的点可以用coordinate
以下方式定义node
:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[>=latex]
\draw (2,2) circle [radius=2pt];
\draw (3,3) circle [radius=2pt];
\path (2,2) ++(45:2pt) coordinate (A);
\path (3,3) ++(225:2pt) coordinate (B);
\draw[-] (A) -- (B);
\end{tikzpicture}
\end{document}
或者,合并为一条\draw
语句:
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\def\radius{2pt}
\draw[radius=\radius]
(2, 2) circle[] ++(45:\radius) coordinate (A)
(3, 3) circle[] ++(225:\radius) coordinate (B)
(A) -- (B)
;
\end{tikzpicture}
\end{document}
答案2
通过将圆定义为节点简单地解决您的问题:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
krog/.append style={% krog = circle ;-)
circle, draw, minimum size=4pt, inner sep=0pt, outer sep=0pt}
]
\node (A) [krog] at (2,2) {};
\node (B) [krog] at (3,3) {};
%
\draw (A) -- (B);
\end{tikzpicture}
\end{document}