![Notación gráfica de Penrose con TikZ](https://rvso.com/image/330728/Notaci%C3%B3n%20gr%C3%A1fica%20de%20Penrose%20con%20TikZ.png)
¿Cómo puedo dibujar una red tensorial como esta usando TikZ?
Quizás agregando algunas palabras sobre ellos.
Me siento muy cómodo con LaTeX, pero todavía soy un novato en TikZ. Dibujaré este tipo de formas extensamente y espero conocer una plantilla para ellas. ¡Gracias!
EDITAR
Esto es lo que he hecho hasta ahora. No estoy seguro de cómo conectar la línea en el borde especificado, la forma correcta de colocar el nodo (¿posición relativa o coordenada?) y cómo colocar tokens en las posiciones especificadas.
\documentclass[tikz,multi,border=10pt]{standalone}
\usetikzlibrary{shapes.geometric,positioning}
\begin{document}
\begin{tikzpicture}
[
triangle/.style = {regular polygon, regular polygon sides=3, draw=black, fill=green!60!black, inner sep=0pt, minimum size=2cm},
border rotated/.style = {shape border rotate=180},
rectangular/.style={fill=brown!80!black, rectangle, rounded corners = 5pt, draw=black, inner sep=0pt, minimum width=4.5cm, minimum height=1cm},
square/.style={fill=blue!60!black, rectangle, draw=black, inner sep=0pt, minimum size = 1cm}
]
\node[square] (1) {};
\node[triangle, border rotated] (2) [below left = 1cm of 1] {};
\node[triangle, border rotated] (3) [below right = 1cm of 1] {};
\node[rectangular] (4) [below=3cm of 1] {};
\node[square] (7) [below = 7cm of 1]{};
\node[triangle] (5) [above left = 1cm of 7] {};
\node[triangle] (6) [above right = 1cm of 7]{};
\draw (2.35) -- +(0,0.2) -- (1);
\draw (2.145) to [bend right=45] (5.215);
\draw (3.145) -- +(0,0.2) -- (1);
\end{tikzpicture}
\end{document}
Respuesta1
No estoy del todo seguro de entender los 3 puntos sobre los que preguntaste. Por ejemplo, no estoy seguro de a qué se refiere "fichas", aunque supongo que son círculos negros rellenos.
Generalmente, el posicionamiento relativo facilita la modificación del código más adelante. Por ejemplo, es más fácil agregar elementos nuevos al diagrama y hacer que otros se ajusten automáticamente. Pero en realidad se trata de qué funciona mejor en un caso particular. A menudo, el posicionamiento absoluto es más rápido de realizar para una sola vez, por ejemplo, aunque hace que el código sea menos flexible.
Le cambié el nombre triangle
a triangular
para evitar sobrescribir la triangle
forma.
El siguiente código muestra una forma de:
- conecta los triángulos desde los puntos apropiados;
- conecte los triángulos al rectángulo desde/hacia los puntos apropiados;
- agrega círculos negros al rectángulo;
- agregue una flecha curva con la etiqueta
s'
.
Con suerte, esto debería permitirle desarrollar más lo que ya tiene.
\documentclass[tikz,multi,border=10pt]{standalone}
\usetikzlibrary{shapes.geometric,positioning}
\begin{document}
\begin{tikzpicture}
[
triangular/.style = {regular polygon, regular polygon sides=3, draw=black, fill=green!60!black, inner sep=0pt, minimum size=2cm},
border rotated/.style = {shape border rotate=180},
rectangular/.style={fill=brown!80!black, rectangle, rounded corners = 5pt, draw=black, inner sep=0pt, minimum width=4.5cm, minimum height=1cm},
square/.style={fill=blue!60!black, rectangle, draw=black, inner sep=0pt, minimum size = 1cm}
]
\node[square] (1) {};
\node[triangular, border rotated] (2) [below left = 1cm of 1] {};
\node[triangular, border rotated] (3) [below right = 1cm of 1] {};
\node[rectangular] (4) [below=3cm of 1] {};
\node[square] (7) [below = 7cm of 1]{};
\node[triangular] (5) [above left = 1cm of 7] {};
\node[triangular] (6) [above right = 1cm of 7]{};
\draw (2.35) -- +(0,0.2) -- (1);
\draw (2.145) .. controls +(-7.5mm,35mm) and +(-7.5mm,-35mm) .. (5.215);
\draw (3.145) -- +(0,0.2) -- (1);
\draw (5.-35) -- +(0,-0.2) -- (7);
\draw (6.-145) -- +(0,-0.2) -- (7);
\draw (3.35) .. controls +(7.5mm,35mm) and +(7.5mm,-35mm) .. (6.-35);
\draw (2.south) -- (4.north -| 2.south) (3.south) -- (4.north -| 3.south) (4.south -| 5.north) -- (5.north) (4.south -| 6.north) -- (6.north);
\path (2.south) -- node [fill, circle] {} (5.north);
\path (3.south) -- node [fill, circle] {} (6.north);
\draw [<-] (4.north west) [bend right] to ++(-10mm,10mm) node [anchor=south] {$s'$};
\end{tikzpicture}
\end{document}