创建电流的表面分布

创建电流的表面分布

顾名思义,我正在尝试在 TikZ 中绘制以下表面电流分布图(我习惯用手绘图,因此我发现切换到数字有点困难):

在此处输入图片描述

条纹区域是覆盖有电流密度 J 的表面,第二幅图是有关所有相关矢量关系的表示。A 和 B 之间的虚线是“横截面”,有助于计算元素为 dl 的线积分,矢量 n 是表面的法向量,ua 矢量与其正交。

非常感谢,祝您有美好的一天。

答案1

这可能是初始点。您可以使用 3d 坐标并在这些坐标中绘制函数。这允许您显示球体的一部分并在球面坐标中绘制各种曲线。

\documentclass[tikz,border=2mm]{standalone}
\usepackage{tikz-3dplot}
\usetikzlibrary{decorations.markings,fpu}
\begin{document}
    \tdplotsetmaincoords{140}{0}
    \begin{tikzpicture}[tdplot_main_coords, 
            line cap=round,line join=round,
            >=stealth,
            smooth,variable=\t,
            declare function={R=10;% radius
            phimin=30;phimax=60;% longitude range
            thetamin=20;thetamax=60;% latitude range
            }]
        \begin{scope}
            \clip plot[domain=phimin:phimax] (xyz spherical cs:radius=R,latitude=thetamin,longitude=\t)
            -- plot[domain=thetamin:thetamax] (xyz spherical cs:radius=R,latitude=\t,longitude=phimax)
            -- plot[domain=phimax:phimin] (xyz spherical cs:radius=R,latitude=thetamax,longitude=\t)
            -- plot[domain=thetamax:thetamin] (xyz spherical cs:radius=R,latitude=\t,longitude=phimin)
            -- cycle;
            \path[tdplot_screen_coords,ball color=gray] circle[radius=R];
            \foreach \X in {1,...,10}
            {\pgfmathsetmacro{\mythetamin}{thetamin+phimin+\X*(thetamax-thetamin)/6}
            \ifnum\X=5\relax 
                \draw[/pgf/fpu/install only={reciprocal},blue,postaction={decorate,decoration={markings,
                mark=at position 0.485 with {\draw[blue,->,solid,thick] (0pt,0pt) -- (1cm,0pt) node[below]{$\vec v$};}}}] plot[domain=phimin:phimax] (xyz spherical cs:radius=R,latitude=\mythetamin-\t,longitude=\t);
            \else
                \draw[blue] plot[domain=phimin:phimax] (xyz spherical cs:radius=R,latitude=\mythetamin-\t,longitude=\t);
            \fi    
            }
        \end{scope}
        \draw[/pgf/fpu/install only={reciprocal},
            red,dashed,postaction={decorate,decoration={markings,
            mark=at position 0.47 with {\draw[red,->,solid,thick] (0pt,0pt) -- (1cm,0pt) node[below]{$\mathrm{d}\vec\ell$};}}}] plot[domain=phimin:phimax] (xyz spherical cs:radius=R,latitude={0.5*thetamin+0.5*thetamax},longitude={\t});
    \end{tikzpicture}
\end{document}

在此处输入图片描述

是的,学习 LaTeX 语法需要付出努力,但是如果您希望能够独立生成这样的图形,您可以等到 AI 可以生成干净的代码,或者学习自己做。

相关内容