相对于其他两个节点定位节点

相对于其他两个节点定位节点

我正在使用以下 TeX 代码通过 Tikz 库绘制 3 种形状。

\documentclass[a4]{article}
\usepackage{tikz}
\usetikzlibrary{shapes,positioning}

\begin{document}
\begin{tikzpicture}
    \node[draw=red,ellipse,minimum height=1.2cm,minimum width=4cm,xshift=7cm,yshift=1cm] (q1) {};
    \node[draw=red,ellipse,minimum height=1.2cm,minimum width=4cm,xshift=7cm,yshift=-1cm] (q2) {};

    \node[circle,draw,minimum size=.5cm] (c1) {};
\end{tikzpicture}
\end{document}

问题是将圆形精确地定位在两个椭圆的中间,但向左偏移 2 厘米。

答案1

您可以使用库的语法calc来执行此操作。但是,如果要点是将节点放置在椭圆的左端之间,则可以使用类似

\path (q1.west) -- node[circle,draw,minimum size=.5cm] (c1) {} (q2.west);

我觉得会更好。

在下面的代码中我还添加了第三种方法。

在此处输入图片描述

\documentclass[a4paper]{article}
\usepackage{tikz}
\usetikzlibrary{shapes,positioning,calc}

\begin{document}
\begin{tikzpicture}
    \node[draw=red,ellipse,minimum height=1.2cm,minimum width=4cm,xshift=7cm,yshift=1cm] (q1) {};
    \node[draw=red,ellipse,minimum height=1.2cm,minimum width=4cm,xshift=7cm,yshift=-1cm] (q2) {};

    \node[circle,draw,minimum size=.5cm] (c1) at ($(q1)!0.5!(q2) + (-2cm,0)$) {};

% place node relative to west side of ellipses
    \path (q1.west) -- node[circle,draw,minimum size=.5cm] (c1) {} (q2.west);

% A different option, same result:
    \path (q1) -- node[blue,circle,draw,minimum size=.5cm,xshift=-2cm] (c1) {} (q2);
\end{tikzpicture}
\end{document}

相关内容