
TikZ를 사용하여 이와 같은 텐서 네트워크를 어떻게 그릴 수 있나요?
아마도 거기에 몇 가지 단어를 추가할 수도 있을 것입니다.
나는 LaTeX에 매우 익숙하지만 여전히 TikZ에 대해서는 멍청합니다. 나는 이런 종류의 형태를 광범위하게 그릴 것이며, 그에 대한 템플릿을 알고 싶습니다. 감사해요!
편집하다
이것이 제가 지금까지 한 일입니다. 지정된 경계에 선을 연결하는 방법, 노드를 배치하는 올바른 방법(상대 위치 또는 좌표?), 지정된 위치에 토큰을 배치하는 방법을 잘 모르겠습니다.
\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}
답변1
질문하신 3가지 사항을 제가 모두 이해했는지 확신할 수 없습니다. 예를 들어, '토큰'이 무엇을 의미하는지 잘 모르겠지만, 채워진 검은색 원은 추측하고 있습니다.
일반적으로 상대 위치 지정을 사용하면 나중에 코드를 수정하기가 더 쉽습니다. 예를 들어, 다이어그램에 새로운 항목을 추가하고 다른 항목을 자동으로 조정하는 것이 더 쉽습니다. 그러나 실제로는 특정 경우에 무엇이 가장 잘 작동하는지에 대한 문제입니다. 예를 들어, 절대 위치 지정은 코드의 유연성을 떨어뜨리지만 일회성으로 수행하는 것이 더 빠른 경우가 많습니다.
모양 을 덮어쓰지 않도록 이름을 triangle
로 바꿨습니다 .triangular
triangle
아래 코드는 다음을 수행하는 한 가지 방법을 보여줍니다.
- 적절한 지점에서 삼각형을 연결하십시오.
- 삼각형을 적절한 지점에서 직사각형에 연결합니다.
- 직사각형에 검은색 원을 추가합니다.
- 라벨이 있는 곡선 화살표를 추가합니다
s'
.
이를 통해 이미 가지고 있는 것을 더욱 발전시킬 수 있기를 바랍니다.
\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}