Figura de relacionamento no Tikz

Figura de relacionamento no Tikz

Gostaria de perguntar como escrever os dois tipos de figuras a seguir no Tikz:

figura

Não encontrei uma pergunta semelhante para isso.

Obrigado.

Responder1

Bem-vindo! Você só precisa encontrar o ponto onde a tangente de uma elipse desaparece. Vamos chamar o ângulo de rotação da elipse direita alpha, e seus "raios" ae b. Então esse ângulo é atan(b*cot(alpha)/a). Aqui está um exemplo com R=1;a=2.7;b=1.8;alpha=30;, onde Ré o raio do círculo.

\documentclass[tikz,border=3mm]{standalone}
\begin{document}
\begin{tikzpicture}[declare function={R=1;a=2.7;b=1.8;alpha=30;},
    nodes={fill=white,font=\sffamily,align=center}]
 \pgfmathsetmacro{\myt}{atan(b*cot(alpha)/a)}
  \draw (0,R) circle[radius=R*1cm] (0,2*R) node {test 3\\more\\ text};
  \draw[rotate=alpha] (\myt:a*1cm and b*1cm) 
     circle[x radius=a*1cm,y radius=b*1cm]
  (\myt:a*2.5cm and b*1cm)  node{test 2\\ more text};
  \draw[rotate=180-alpha] (-\myt:a*1cm and b*1cm) 
   circle[x radius=a*1cm,y radius=b*1cm]
   (-\myt:a*2.5cm and b*1cm)  node{test 1\\ more text};
 % 
 \begin{scope}[xshift={sqrt(2)*a*2cm+1cm}]
  \draw (0,R) circle[radius=R*1cm] (0,2*R) node {test 3};
  \draw[rotate=alpha] (\myt:a*1cm and b*1cm) 
     circle[x radius=a*1cm,y radius=b*1cm]
  (\myt:a*2.2cm and b*1cm)  node{test 2};
  \draw[rotate=180-alpha] (-\myt:a*1cm and b*1cm) 
   circle[x radius=a*1cm,y radius=b*1cm]
   (-\myt:a*2.2cm and b*1cm)  node{test 1};
 \end{scope}
\end{tikzpicture}
\end{document}

insira a descrição da imagem aqui

Os valores 2.5e 2.2que se multiplicam anos rótulos precisam ser ajustados para que você fique satisfeito com o resultado.

informação relacionada