Как нарисовать область неоднородного электрического поля в TikZ?

Как нарисовать область неоднородного электрического поля в TikZ?

Как нарисовать эту диаграмму в TiкЗ?

введите описание изображения здесь

Извините, что не привел минимальный пример, потому что я застрял с самого начала. Я не могу найти решение для многих подзадач, которые возникли во время моих попыток. Вот самые сложные:

  1. Изогнутые линии:Они, очевидно, должны иметь один и тот же центр, но если я использую этот центр, высота картинки становится чрезвычайно огромной, что не помещается на странице. Если я использую arc, я могу избежать ненужной огромной высоты, но слишком сложно сделать дуги концентрическими.
  2. Обозначения прямого угла:Я нашел решение: нарисовать небольшой квадрат, у которого пунктирная линия и кривые являются двумя сторонами. Конечно, я не могу использовать \picздесь (или могу?). Но здесь 8 таких квадратов, поэтому рисование такого большого количества квадратов сделает мой код чрезвычайно длинным, что мне не нравится.
  3. Изогнутые стрелки:Я думаю, inчто и outхорошо, но мне слишком сложно найти координаты и найти углы касания. Я недостаточно "чувствителен", controlsчтобы найти контрольные точки.

Можете ли вы мне помочь? Спасибо заранее!

решение1

Согласно моим наблюдениям, можно получить приемлемые результаты, отрегулировав ослабление. (И вы можете нарисовать символы под прямым углом в виде петли.)

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{arrows.meta,bending}
\begin{document}
\begin{tikzpicture}[scale=1.5,font=\sffamily]
 \begin{scope}
 \path[preaction={draw,thick},clip] (-4,3) rectangle (4,8);
 \foreach \Y [count=\Z,evaluate=\Z as \Voltage using {int(440-\Z*40)}] in {1.2,1.4,...,2.2}
  {\draw (0,0) circle ({exp(\Y)});
  \node[rotate=-22.5,fill=white] at (67.5:{exp(\Y)}){\Voltage~V};}
 \foreach \X in {60,75,...,120}
  {\draw[dashed] (0,0) -- ++ (\X:10);
  \foreach \Y in {1.2,1.4,...,2.2}
  {\draw  ({\X-10/exp(\Y)}:{exp(\Y)}) -- ({\X-10/exp(\Y)}:{exp(\Y)+0.2})
  -- ({\X}:{exp(\Y)+0.2});}}
 \end{scope} 
 \draw[thick,-{Stealth[length=2mm,bend]}] (-5.5,5.5) -- (-4,5.5) 
  to[out=0,in=-110] (0.5,8.5) node[right]{A};
 \draw[thick,-{Stealth[length=2mm,bend]}] (-5.5,5.5) -- (-4,5.5) 
  to[out=0,in=-105,looseness=1.3] (75:8.7) node[right]{B};
 \draw[thick,-{Stealth[length=2mm,bend]}] (-5.5,5.5) -- (-4,5.5) 
  to[out=0,in=95,looseness=0.8] (90:2.7) node[left]{C};
 \draw[thick,-{Stealth[length=2mm,bend]}] (-5.5,5.5) -- (-4,5.5) 
  to[out=0,in=75,looseness=1.5] (75:2.7) node[right]{D};
 \draw[thick,{Circle}-{Stealth[length=2mm,bend]}] (-5.5,5.5) -- (-4.5,5.5)
 node[midway,above]{$v$} node[midway,below,align=center]{charged\\ particle};
\end{tikzpicture}
\end{document}

введите описание изображения здесь

Я не знаю, насколько неоднородно ваше поле. Конечно, можно было бы нарисовать окружности и по закону Кулона.

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{arrows.meta,bending}
\begin{document}
\begin{tikzpicture}[scale=1.5,font=\sffamily]
 \begin{scope}
  \path[preaction={draw,thick},clip] (-4,3) rectangle (4,8);
  \foreach \Voltage in {440,400,...,200}
  {\draw (0,0) circle ({4*(400/\Voltage)});
  \node[rotate=-22.5,fill=white] at (67.5:{4*(400/\Voltage)}){\Voltage~V};}
 \foreach \X in {60,75,...,120}
  {\draw[dashed] (0,0) -- ++ (\X:10);
  \foreach \Voltage in {440,400,...,200}
  {\draw  ({\X-2*\Voltage/400}:{4*(400/\Voltage)}) --
  ({\X-2*\Voltage/400)}:{4*(400/\Voltage)+0.15})
  -- ({\X}:{4*(400/\Voltage)+0.15});}}
 \end{scope} 
 \draw[thick,-{Stealth[length=2mm,bend]}] (-5.5,5.5) -- (-4,5.5) 
  to[out=0,in=-110] (0.5,8.5) node[right]{A};
 \draw[thick,-{Stealth[length=2mm,bend]}] (-5.5,5.5) -- (-4,5.5) 
  to[out=0,in=-105,looseness=1.3] (75:8.7) node[right]{B};
 \draw[thick,-{Stealth[length=2mm,bend]}] (-5.5,5.5) -- (-4,5.5) 
  to[out=0,in=95,looseness=0.8] (90:2.7) node[left]{C};
 \draw[thick,-{Stealth[length=2mm,bend]}] (-5.5,5.5) -- (-4,5.5) 
  to[out=0,in=75,looseness=1.5] (75:2.7) node[right]{D};
 \draw[thick,{Circle}-{Stealth[length=2mm,bend]}] (-5.5,5.5) -- (-4.5,5.5)
 node[midway,above]{$v$} node[midway,below,align=center]{charged\\ particle};
\end{tikzpicture}
\end{document}

введите описание изображения здесь

Связанный контент