구형 팔분원 표면 위에 벡터장을 그리지만 특정 영역에는 그리지 않습니다.

구형 팔분원 표면 위에 벡터장을 그리지만 특정 영역에는 그리지 않습니다.

나는 단위 옥탄트 표면의 단일 점을 향하거나 멀어지는 벡터형 필드를 그리는 데 관심이 있습니다. 가능하다면 일부 경로에 걸쳐 있는 영역 내에서는 이런 일이 발생하지 않도록 제한하고 싶습니다. 아래에 표시된 이미지를 생성하는 다음 코드가 있습니다. 나는 또한 내가 원하는 것을 강조했습니다.

\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 좌표에는 좀 더 복잡한 계산이 따른다는 것을 이해합니다. 이 작업을 훨씬 더 쉽게 만들어 주는 외부 라이브러리가 있다면 이에 대해 배우고 싶습니다.

관련 정보