답변1
여기서 질문하신 내용은 여기 일부 게시물에 흩어져 있습니다. 몇 가지 제안 사항:
- 일부 매개변수를 Ti에 저장하는 것이 유리할 수 있습니다.케이Z 기능은
declare function
. - 경로를 따라 날카로운 모서리와 둥근 모서리 사이를 전환할 수 있습니다. 이를 좀 더 실용적으로 만들기 위해 아래 코드
sc
와 같은 단축키를 정의할 수 있습니다.rc
- 임의의 모양의 경우 장식을 사용할 수 있습니다
random steps
.
그 외에는 원하는 출력을 생성하는 것이 대부분 지루합니다.
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{decorations.pathmorphing}
\begin{document}
\begin{tikzpicture}[declare function={L=3;t=0.8;d=3;r=0.4;P=4;},
rc/.style={rounded corners=r*1cm},sc/.style={sharp corners},
>=stealth]
\draw[semithick] (0,0) coordinate (start)-- ++ (0,d) foreach \X [count=\Y] in
{0.1,0.1+0.8/3,0.1+1.6/3,0.9} {coordinate[pos=\X] (auxL\Y)
} [rc] -- ++ (P,0) [sc] -- ++ (0,t) coordinate (p1)
--++ (L,0) coordinate[pos=0.4] (p2) coordinate (p3) [rc] -- ++ (0,-t) [sc]
-- ++ (P,0) coordinate[pos=0.3] (p4) coordinate[pos=0.4] (p5) coordinate (p6)
-- ++ (0,-d) coordinate (p7)
foreach \X [count=\Y] in
{0,1/3,2/3,1} {coordinate[pos=\X] (auxR\Y)
}
[rc] -- ++(-P,0)[sc] --++ (0,-t) coordinate (p8)
-- ++(-L,0) [rc] --++(0,t) coordinate (p12) [sc] -- cycle
([xshift=0.6cm]auxR2) node[right]{$S$}
foreach \Y in {1,...,4}
{(auxR\Y) edge[->,shorten <=2pt] ++ (0.6,0)
(auxL\Y) node[left,circle,draw,inner sep=2pt](c\Y) {}};
\draw ([yshift=2mm]p1) -- coordinate (p9) ++ (0,0.8) ([yshift=2mm]p3) -- ++ (0,0.8)
([xshift=2mm]p3) -- ++ (0.8,0) coordinate[pos=0.8] (p10)
([xshift=2mm]p8) -- ++ (0.8,0) coordinate[pos=0.8] (p11);
\draw[<->] (p2) -- node[fill=white]{$H$} (p2|-p8);
\draw[<->] (p9) -- node[fill=white]{$L$} (p3|-p9);
\draw[<->] (p10) -- node[fill=white]{$t$} (p10|-p6);
\draw[<->] (p11) -- node[fill=white]{$t$} (p11|-p7);
\draw[<->] (p5) -- node[fill=white]{$d$} (p5|-p7);
\draw[<-] (p12) ++ (45:r) ++ (-r,-r) -- ++ (-135:0.5) node[below left] {$r$};
\fill[decorate,decoration={random steps,segment length=pi*1pt},gray!50]
(c1.west|-start) to[bend left] ++ (0,d);
\draw (c1.west|-start) -- ++ (0,d);
\end{tikzpicture}
\end{document}
이것이 여러분에게 필요한 그래프를 그리는 데 필요한 시작과 정보가 되기를 바랍니다.