答案1
欢迎使用 TeX-SE!这会产生类似的东西。它使用tikz-3dplot
视图的正交投影和3d
库在适当平面上进行投影。
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{tikz-3dplot}
\usetikzlibrary{3d}
\begin{document}
\tdplotsetmaincoords{105}{-10}
\begin{tikzpicture}[tdplot_main_coords,bullet/.style={circle,fill,inner sep=1.2pt}]
% parameters
\pgfmathsetmacro{\Radius}{2.5}
\pgfmathsetmacro{\Angle}{20}
% axes
\draw[-stealth] (0,0,0) coordinate (O) -- (0,0,1.2*\Radius);
\draw[-stealth] (O) -- (1.2*\Radius,0,0);
\draw[-stealth] (O) -- (0,1.2*\Radius,0);
% sphere
\draw[ball color=gray,fill opacity=0.3,tdplot_screen_coords] (0,0)
circle[radius=\Radius];
% equator
\begin{scope}[canvas is xy plane at z=0]
\draw[dashed,thick](\tdplotmainphi:\Radius)
arc(\tdplotmainphi:\tdplotmainphi-180:\Radius);
\draw[thick](\tdplotmainphi:\Radius)
arc(\tdplotmainphi:\tdplotmainphi+180:\Radius);
\end{scope}
% plane that runs through the poles
\tdplotsetrotatedcoords{-130}{0}{0}
\begin{scope}[tdplot_rotated_coords,canvas is xz plane at y=0]
\draw[dashed,thick](-\tdplotmaintheta:\Radius)
arc(-\tdplotmaintheta:-\tdplotmaintheta+180:\Radius);
\draw[thick](-\tdplotmaintheta:\Radius)
arc(-\tdplotmaintheta:-\tdplotmaintheta-180:\Radius);
\draw[dashed,thick] (\Angle:\Radius) node[bullet]{}
-- (\Angle+180:\Radius) node[bullet]{};
\end{scope}
\end{tikzpicture}
\end{document}