定义圆上的坐标

定义圆上的坐标

我有以下一段 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 sepouter 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}

相关内容