在 TikZ 中沿椭圆放置节点

在 TikZ 中沿椭圆放置节点

有人知道一种简单的方法可以将节点放置在椭圆上的任意位置吗?理想情况下,我想模仿这样的符号

\draw (0,0) ellipse [ x radius=2, y radius = 1] node[pos=.3] {Hi, I am a node.};

但这并不奏效。例如,可以将四条曲线拼接在一起,这样可以得到很好的近似值

\node[coordinate,name=top] at (0,3) {};
\node[coordinate,name=bottom] at (0,-3) {};
\node[coordinate,name=left] at (-5,0) {};
\node[coordinate,name=right] at (5,0) {};

\draw (left) .. controls ($(left)+(0,2)$) and ($(top)-(2,0)$) .. (top);
\draw (left) .. controls ($(left)-(0,2)$) and ($(bottom)-(2,0)$) .. (bottom);
\draw (right) .. controls ($(right)+(0,2)$) and ($(top)+(2,0)$) .. (top);
\draw (right) .. controls ($(right)-(0,2)$) and ($(bottom)+(2,0)$) .. (bottom);

可以近似地

\draw (0,0) ellipse [ x radius=5, y radius = 3];

使用这种方法,我可以使用我想要使用的符号。但如果我想用这种方法制作多张图片或进行调整,那么工作量就会很大。此外,我选择的控制点是通过猜测和检查而不是其他知识(我知道这是一个缺点),所以对于不同的尺寸,我每次都需要猜测和检查。所以我希望能有更紧凑的东西。

答案1

您可以让 TikZ 为您计算节点的位置:

\usetikzlibrary{calc}

\begin{tikzpicture}
    \draw (2,0) ellipse (2 and 1);
    \node at ($(2,0)+(75:2 and 1)$) {a node};
\end{tikzpicture}

这里的关键是,它(75:2 and 1)是以 (0,0) 为中心,轴长为 2 和 1 的椭圆上的 75 度位置。(2,0) 只是如何获得偏心位置的一个例子。

答案2

你可以做的一件事是创建一个椭圆形节点,然后使用该节点的锚点。例如,

\node[draw,ellipse,minimum height=2cm,minimum width=4cm] (a) at (0,0) {};
\node[above right] at (a.75) {Hi I am a node};

75是您想要放置文本节点的椭圆周围的角度。

答案3

使用 pgf 2.10 CVS !! 您需要使用arc操作,因为您需要知道以起点和终点为起点的路径。圆也一样。

\documentclass[11pt]{scrartcl}
\usepackage{tikz}
\usetikzlibrary{%
  arrows,
  calc
}

\begin{document}
\begin{tikzpicture}

 \draw (8,0) arc [start angle=0,   
                  end angle=360,
                  x radius=2cm, 
                  y radius=4mm]
                                node [pos=0] {WITH} 
                                node [pos=.25] {CVS !!} 
                                node [pos=.5] {2.10}  
                                node [pos=.75] {PGF};

\end{tikzpicture}
\end{document}  

在此处输入图片描述

相关内容