这是我的代码:
\documentclass{scrartcl}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}
\node (circle) [draw, circle, minimum size = 20mm] at (0, 0) {}
(0, 0) node[above] {$I$};
\draw (circle.center) [{Rays[]}-|] -- (circle.east) node[below, midway] {$r$};
\draw (circle.east) -- (2, 0) node[below, midway] {$r$};
\draw (2, 0) [|-{Circle[]}] -- (3, 0) node[below, midway] {$r$} node[above] {P};
\end{tikzpicture}
\end{document}
该行(0, 0) node[above] {$I$};
要求集成到此行中:\node (circle) [draw, circle, minimum size = 20mm] at (0, 0) {}
。但我无法实现。我该怎么做?也欢迎任何其他优化。
期望的结果(我想要产生的):
答案1
我不确定我是否理解正确,但是你想要这样的东西吗?
\documentclass[border=10pt,multi,tikz]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}
\node (circle) [draw, circle, minimum size = 20mm, label=above:$I$] at (0, 0) {};
\draw (circle.center) [{Rays[]}-|] -- (circle.east) node[below, midway] {$r$};
\draw (circle.east) -- (2, 0) node[below, midway] {$r$};
\draw (2, 0) [|-{Circle[]}] -- (3, 0) node[below, midway] {$r$} node[above] {P};
\end{tikzpicture}
\end{document}
请记住,节点与路径不同,因此不能以相同的方式标记它。
实际上,您的原始代码在原点放置了两个节点:首先是圆形节点;然后是$I$
。这\node
是可行的,因为 相当于\path node
。所以你有\path node ... node ...;
因此,第二个节点放置在由点 组成的路径上方(0,0)
。
编辑
解决澄清的问题,只需将节点放在线的起点上方即可。例如,
\documentclass[border=10pt,multi,tikz]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}
\node (circle) [draw, circle, minimum size = 20mm] at (0, 0) {};
\draw (circle.center) [{Rays[]}-|] node [above] {$I$} -- (circle.east) node[below, midway] {$r$};
\draw (circle.east) -- (2, 0) node[below, midway] {$r$};
\draw (2, 0) [|-{Circle[]}] -- (3, 0) node[below, midway] {$r$} node[above] {P};
\end{tikzpicture}
\end{document}
还有其他方法可以做到这一点,但对我来说这似乎和其他方法一样简单。