
Мне интересно нарисовать векторное поле к одной точке на поверхности единичного октанта или от нее. Если возможно, я хотел бы ограничить это так, чтобы это не происходило в области, охватываемой некоторыми путями. У меня есть следующий код, который создает изображение, показанное ниже. Кроме того, я выделил то, что мне нужно.
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usetikzlibrary{arrows.meta}
\begin{document}
\tdplotsetmaincoords{65}{120}
\begin{tikzpicture}[
scale=2.5, tdplot_main_coords,
Arrow/.style={-{Latex[scale=.7]}},
]
% Draw axes
\draw[->] (0,0,0) -- (1.2,0,0) node[inner sep=0pt, below left] (r2) {$r_2$};
\draw[->] (0,0,0) -- (0,1.2,0) node[inner sep=0pt, below right] (r1) {$r_1$};
\draw[->] (0,0,0) -- (0,0,1.2) node[inner sep=0pt, above] (r3) {$r_3$};
% quarter circle on xy plane
\draw[dashed] (1,0,0) arc (0:90:1); % -- (0,0,0) -- cycle;
% quarter circle on xz plane
\tdplotsetthetaplanecoords{0}
\draw[dashed, tdplot_rotated_coords] (1,0,0) arc (0:90:1); % -- (0,0,0) -- cycle;
% quarter circle on yz plane
\tdplotsetthetaplanecoords{90}
\draw[dashed, tdplot_rotated_coords] (1,0,0) arc (0:90:1); % -- (0,0,0) -- cycle;
\node (A1) at (0.7,0.7,0.1) {};
\node (A2) at (0.7,0.1,0.7) {};
\node (A3) at (0.1,0.7,0.7) {};
% Draw triangle on surface with corners A1...A3
\draw[blue] (A1.center) edge[bend left] (A2.center);
\draw[blue] (A2.center) edge[bend left] (A3.center);
\draw[blue] (A3.center) edge[bend left] (A1.center);
\end{tikzpicture}
\end{document}
Вот что у меня сейчас есть.
Это то, чего я хотел бы.
Если возможно, я бы хотел сделать это максимально просто, но я понимаю, что 3D-координаты влекут за собой более сложные вычисления. Если есть также внешняя библиотека, которая делает это намного проще, я был бы более чем счастлив узнать и о ней.