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