Tikz "कुंडल" सजावट: कुंडल के उन्मुखीकरण को कैसे बदलना है?

Aug 17 2020

मुझे coilटीकज़ में सजावट का उपयोग करके एक मुद्दा मिला है :

आप जान सकते हैं कि एक आवेशित कण चुंबकीय क्षेत्र रेखाओं (जिसे साइक्लोट्रॉन गति कहा जाता है ) के आसपास घूमता है । हालांकि, पक्षपाती सतह के पास, मार्गदर्शक केंद्र (यानी छोरों का केंद्र) की गति बी क्षेत्र रेखा के साथ रैखिक गति को छोड़ देती है , और लंबवत-से-सतह की दिशा का पालन करती है। यह टिकज पर ऐसा दिखता है:

निम्नलिखित कोड के साथ:

\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}

समस्या यह है, कि बी दिशा में कॉइल लंबवत होना चाहिए , कि मार्गदर्शक केंद्र पथ (कॉइल ड्रॉइंग के सापेक्ष कोड दोनों टिप्पणियों के बीच खड़ा होता है )।% THIS IS THE FRAGMENT TO DRAW THE BLUE COIL !!!!

इसलिए, मेरा टीक्ज़ प्रश्न: क्या कुंडल को एक ही झुकाव (यानी बी से लंबवत) रखने के लिए उपकृत करने का एक तरीका है, लेकिन बैंगनी धराशायी रेखा का पालन करने के लिए भी?

मैं यह चाहता हूं (खराब गुणवत्ता के लिए खेद है):

आपकी सहायता के लिये पहले से ही धन्यवाद!

जवाब

3 hpekristiansen Aug 18 2020 at 08:09

पहला संस्करण जो काम नहीं करता है:

\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}कुंडल पथ morphing के साथ अच्छी तरह से काम नहीं करता।


मैं मार्ग को पैरामीट्रिक बनाता हूं - मैंने दो सीधे खंडों को एक पेराबोला से जुड़ने के लिए चुना, और आशा है कि यह ठीक है। फिर मैं एक पैरामीट्रिक घुमाया हुआ कॉइल इस रास्ते पर जोड़ा

\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}