У меня есть рисунок, состоящий из нескольких линий:
\begin{tikzpicture}
\shade[top color=black,bottom color=white] (-2,2) rectangle (2,1.75) node [above] {$n_2$};
\shade[top color=white, bottom color=black] (-2,0.75) rectangle (2,0.5);
\draw (-2,2)--(2,2);
\draw (-2,1.75)--(2,1.75);
\draw (-2,0.75)--(2,0.75);
\draw (-2,0.5)--(2,0.5);
\draw[blue, very thick, ->] (-3,2)--(-1.75,0.75) -- (-0.75,1.75)--(0.25,0.75)--(1.25,1.75)--(3.25,-0.25);
\draw[red, very thick, ->] (-3,1)--(-1.75,0.75)--(3.25,1.75);
\draw[green, very thick, ->] (-3,3)--(-1.75,0.75)--(-1.5,0.5)--(-0.5,0);
\node (-1.5,0.5) {$n_2$};
\node (10,10) {$n_1$};
\end{tikzpicture}
Теперь я хочу поместить узел с именем $n_1$ в середину горизонтальных линий (т.е. в точку (0,1)). Но независимо от введенных мной значений узел не перемещается, он всегда остается на том же месте, что и второй узел с именем $n_2$. Почему? И как его переместить?
решение1
Как сказал Питер, вам следует добавить, at
чтобы указать координаты. Однако вам не нужны эти дополнительные узлы. Вы можете добавить узлы непосредственно к "стержням" выше. Вы можете добавить узлы к любому пути, и прямоугольник по-прежнему будет путем.
Выход
Код
\documentclass[margin=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\shade[top color=black,bottom color=white] (-2,2) rectangle (2,1.75) node [midway,above, inner sep=6pt] {$n_2$};
\shade[top color=white, bottom color=black] (-2,0.75) rectangle (2,0.5) node [midway, below, inner sep=6pt] {$n_1$};
\draw (-2,2)--(2,2);
\draw (-2,1.75)--(2,1.75);
\draw (-2,0.75)--(2,0.75);
\draw (-2,0.5)--(2,0.5);
\draw[blue, very thick, ->] (-3,2)--(-1.75,0.75) -- (-0.75,1.75)--(0.25,0.75)--(1.25,1.75)--(3.25,-0.25);
\draw[red, very thick, ->] (-3,1)--(-1.75,0.75)--(3.25,1.75);
\draw[green, very thick, ->] (-3,3)--(-1.75,0.75)--(-1.5,0.5)--(-0.5,0);
\end{tikzpicture}
\end{document}