Украшение тикз «катушка»: как изменить ориентацию катушки?
У меня проблема с coil
оформлением в Tikz:
Возможно, вы знаете, что заряженная частица вращается вокруг силовых линий магнитного поля (это называется циклотронным движением ). Однако вблизи смещенной поверхности движение направляющего центра (то есть центра петель) прекращает линейное движение вдоль силовой линии B и имеет тенденцию следовать направлению, перпендикулярному поверхности. Вот как это выглядит на Tikz:

Со следующим кодом:
\documentclass[tikz]{standalone}
\usetikzlibrary{calc,decorations.pathreplacing,angles,quotes,decorations.pathmorphing}
\usepackage{newpxtext,newpxmath}
\usepackage[european,RPvoltages]{circuitikz}
\standaloneenv{circuitikz}
\begin{document}
\begin{tikzpicture}[thick,scale=1, every node/.style={scale=1}]
\def\ion#1#2{
%\draw node[circle,shading=ball,minimum width=1cm,color = white] at (#1,#2) {$\textbf{+}$};
\fill[white, ball color=blue!80!white] (#1, #2, 0) circle (0.5);
\draw (#1,#2) node[color = white] {\Huge $\textbf{+}$};
}
\def\electron#1#2{
%\draw node[circle,shading=ball,minimum width=1cm,color = white] at (#1,#2) {$\textbf{+}$};
\fill[line width=0.0mm, white, ball color=red] (#1, #2, 0) circle (0.30);
\draw (#1,#2) node[color = white] {\Large $\textbf{-}$};
}
% Electrodes
\shade [left color = gray , right color = gray!25] (10,0) -- (11,0) -- (11,7) -- (10,7) -- cycle;
\draw (10.5,3.5) node [rotate = -90] {Cathode, $V<0$ V};
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% plasma
\shade [right color = blue!30 , left color = blue!10] (-0.5,0) -- (10,0) -- (10,7) -- (-0.5,7) -- cycle;
\draw [thick] (-0.5,0) -- (11,0);
\draw [thick] (-0.5,7) -- (11,7);
\draw [very thick] (10,0) -- (10,7);
\draw [ultra thick, ->,>=stealth] (0.5,5) -- (0.5,6.25);
\draw (0.5,6) node [above left] {$x$};
\draw [ultra thick, ->,>=stealth] (0.5,5) -- (1.75,5);
\draw (1.5,5) node [below left] {$z$};
\draw (0.5,5) node {$\bullet$};
\draw [very thick,->,>=stealth] (0.5,5) --++ (45:1.4);
\draw (0.5,5) ++ (45:1.4) node [above right] {$\vec{B}=B~\vec{b}$};
\draw [very thick] (0.5,5.5) arc(90:45:0.5);
\draw (0.5,5) ++ (70:0.75) node [] {$\psi$};
\draw [dashed, very thick, red!40!blue] (0,0) -- (3,3) to[out = 45, in = -170] (7,5) -- (10,5);
\draw [dashed, white!10!black, ultra thick](3,0) -- (3,7);
\draw [dashed, white!10!black, ultra thick](7,0) -- (7,7);
\draw (1.5,0) node [below, text width = 3cm,align = center] {Prégaine \\ collisionnelle $\sim\lambda_i$};
\draw (5,0) node [below, text width = 4cm,align = center] {Prégaine \\ magnétique $\sim\rho_\text{ci}$};
\draw (8.5,0) node [below, text width = 2.5cm,align = center] {Gaine de Debye $\sim\lambda_\text{De}$};
% THIS IS THE FRAGMENT TO DRAW THE BLUE COIL !!!!
\draw [very thick, blue!50!white,->,>=stealth,decorate,decoration={coil,amplitude=10mm,segment length=10mm,post length=1mm}]
(0,0) -- (3,3) to[out = 45, in = -170] (7,5) -- (10,5);
% THIS was THE FRAGMENT TO DRAW THE BLUE COIL !!!!
\draw [ultra thick,->,>=stealth,blue] (1,1) --++ (45:1);
\draw (1,1) ++ (45:1) node [above left,blue] {$\vec{v}_i$};
\ion{1}{1};
\draw [ultra thick,->,>=stealth,blue] (3,3) --++ (45:1.4);
\draw (3,3) ++ (45:1.4) node [below right,blue] {$\vec{v}_{i\parallel}=c_s~\vec{b}$};
\ion{3}{3};
\draw [ultra thick,->,>=stealth,blue] (7,5) --++ (0:1.4);
\draw (7,5) ++ (0:1.4) node [below,blue] {$\vec{v}_{iz}=c_s~\vec{e}_z$};
\ion{7}{5};
\draw [very thick, red!80!white,->,>=stealth,decorate,decoration={coil,amplitude=1.4mm,segment length=2mm,post length=1mm}]
(0,2.75) -- (4.25,7);
\electron{0}{2.75};
\draw [very thick, red!80!white,->,>=stealth,decorate,decoration={coil,amplitude=1.4mm,segment length=2mm,post length=1mm}]
(5,0.5) -- (8,3.5);
\draw [very thick , dotted , red!80!white] (8,3.5) -- ++(45:0.25);
\electron{5}{0.5};
\end{tikzpicture}
\end{document}
Проблема в том, что катушка должна быть перпендикулярна направлению B , а не направляющему центру (код, относящийся к чертежу катушки, стоит между обоими комментариями % THIS IS THE FRAGMENT TO DRAW THE BLUE COIL !!!!
).
Поэтому мой вопрос Tikz: есть ли способ заставить катушку сохранять тот же наклон (т.е. перпендикулярно B), но также следовать фиолетовой пунктирной линии?
Я хочу вот это (извините за плохое качество):

Заранее спасибо за помощь!
Ответы
Сначала версия, которая не работает:
\documentclass[tikz]{standalone}
\usetikzlibrary{decorations.pathmorphing}
\begin{document}
\begin{tikzpicture}
\draw [very thick, orange] (0,0) -- (3,3) to[out = 45, in = -180] (7,5) -- (10,5);
\draw [very thick, blue!50, decorate, decoration={coil,amplitude=10mm,segment length=10mm, transform={shift only, rotate=45}}] (0,0) -- (3,3) to[out = 45, in = -180] (7,5) -- (10,5);
\end{tikzpicture}
\end{document}

transform={shift only, rotate=45}
Не очень хорошо работает с пути катушки морфинга.
Я делаю путь параметрическим - я решил соединить два прямых участка параболой и надеюсь, что все в порядке. Затем я рисую параметрическую повернутую катушку, добавленную к этому пути:
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\draw [very thick, green!50, domain={0:1}, smooth, variable=\t, samples=100] plot ({3*\t}, {3*\t});
\draw [very thick, green!50, domain={0:1}, smooth, variable=\t, samples=100] plot ({4*\t+3},{-2*(\t-1)^2+5});
\draw [very thick, green!50, domain={0:1}, smooth, variable=\t, samples=100] plot ({3*\t+7}, {5});
%
\draw[very thick, red!50, domain={0:10}, smooth, variable=\t, samples=100] plot ( {(0.3*\t+0.8*sin((\t*pi-pi/2) r)*cos(45)-cos((\t*pi-pi/2) r)*sin(45)}, {0.3*\t+cos((\t*pi-pi/2) r)} );
\draw[very thick, red!50, domain={0:10}, smooth, variable=\t, samples=100] plot ( {(0.4*\t+3+0.8*sin((\t*pi-pi/2) r)*cos(45)-cos((\t*pi-pi/2) r)*sin(45)}, {-2*(0.1*\t-1)^2+5+cos((\t*pi-pi/2) r)} );
\draw[very thick, red!50, domain={0:5}, smooth, variable=\t, samples=100] plot ( {(0.5*\t+7+0.8*sin((\t*pi-pi/2) r)*cos(45)-cos((\t*pi-pi/2) r)*sin(45)}, {5+cos((\t*pi-pi/2) r)} );
\end{tikzpicture}
\end{document}

Что могло быть лучше:
- Из-за того, как я наклоняю катушку, она не начинается в начальной точке пути.
- И путь, и катушка разделены на три части. Было бы лучше определить функцию и нарисовать их обе за один раз. Так не было бы стыков, и
smooth
они работали бы на всем пути. Я не знаю, как это сделать. - Из-за наличия трех разделов я вынужден выбирать, сколько целочисленных циклов добавить в каждый раздел. Это заставляет петли выглядеть более разнесенными на первом расстоянии параболы. Возможно, можно будет внести изменения в путь, если точный путь не является критическим, чтобы секции имели целочисленные отношения длины.
Редактировать:
Я понял, что начальная точка отключена не из-за наклона, а потому, что я начинаю цикл на полцикла раньше - вот исправленная версия:
\documentclass[tikz]{standalone}
\usetikzlibrary{decorations.pathmorphing}
\begin{document}
\begin{tikzpicture}
\draw [very thick, green!50, domain={0:1}, smooth, variable=\t, samples=100] plot ({3*\t}, {3*\t});
\draw [very thick, green!50, domain={0:1}, smooth, variable=\t, samples=100] plot ({4*\t+3},{-2*(\t-1)^2+5});
\draw [very thick, green!50, domain={0:1}, smooth, variable=\t, samples=100] plot ({3*\t+7}, {5});
%
\draw[very thick, blue, domain={0:10}, smooth, variable=\t, samples=100] plot ( {(0.3*\t+sqrt(18)/7+0.8*sin((\t*pi-pi/2) r)*cos(45)-cos((\t*pi-pi/2) r)*sin(45)}, {0.3*\t+cos((\t*pi-pi/2) r)} );
\draw[very thick, blue, domain={0:10}, smooth, variable=\t, samples=100] plot ( {(0.4*\t+sqrt(18)/7+3+0.8*sin((\t*pi-pi/2) r)*cos(45)-cos((\t*pi-pi/2) r)*sin(45)}, {-2*(0.1*\t-1)^2+5+cos((\t*pi-pi/2) r)} );
\draw[very thick, blue, domain={0:3}, smooth, variable=\t, samples=100] plot ( {(0.6*\t+sqrt(18)/7+7+0.8*sin((\t*pi-pi/2) r)*cos(45)-cos((\t*pi-pi/2) r)*sin(45)}, {5+cos((\t*pi-pi/2) r)} );
\end{tikzpicture}
\end{document}
