답변1
이 중 특별히 복잡한 것은 없습니다. 물건 dimline
의 출처는여기. siunitx
치수와 각도를 조판하는 데 사용할 수 있습니다 .
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{calc,decorations.pathreplacing,angles,quotes}
\newif\ifdrawdimlineleft
\newif\ifdrawdimlineright
\tikzset{dimlabel distance/.initial=5mm,
vertical lines extend/.initial=5mm,
vertical dim line/.style={gray,thin},
dim arrow line/.style={latex-latex,thin},
dim label/.style={},
left dimline/.is if=drawdimlineleft,
left dimline=true,
right dimline/.is if=drawdimlineright,
right dimline=true,
indicate dimensions/.style={decorate,decoration={
show path construction,
lineto code={
\draw[dim arrow line]
($ (\tikzinputsegmentfirst)!\pgfkeysvalueof{/tikz/dimlabel distance}!-90:(\tikzinputsegmentlast) $) -- ($ (\tikzinputsegmentlast)!\pgfkeysvalueof{/tikz/dimlabel distance}!90:(\tikzinputsegmentfirst) $)
\ifx#1\empty
\else
node[midway,sloped,fill=white,dim label]{#1}
\fi;
\ifdrawdimlineleft
\draw[vertical dim line] (\tikzinputsegmentfirst) --
($ (\tikzinputsegmentfirst)!\pgfkeysvalueof{/tikz/vertical lines
extend}!-90:(\tikzinputsegmentlast) $);
\fi
\ifdrawdimlineright
\draw[vertical dim line] (\tikzinputsegmentlast) --
($ (\tikzinputsegmentlast)!\pgfkeysvalueof{/tikz/vertical lines extend}!90:(\tikzinputsegmentfirst) $);
\fi
}}}}
\begin{document}
\begin{tikzpicture}
\draw[thick,-stealth] (-5,0) -- (5,0) coordinate(x) node[below]{$\mu$};
\draw[thick,-stealth] (0,-5) -- (0,3) node[left]{$y$};
\draw[dashed] (-30:3) coordinate(A) -- (0,0) coordinate(O) ;
\draw[dashed,postaction={indicate dimensions={$L_1=2.5\,$m},
dim arrow line/.append style={solid}}] (O) -- (-120:2.5) coordinate(B);
\draw[thick] (A) -- ++(-30:3);
\draw[thick,postaction={indicate dimensions={$L_2=3\,$m},
dim arrow line/.append style={solid}}] (B) -- ++ (-120:3);
\draw[thick,red,-stealth] (O) -- (60:1.5);
\draw[thick,red,-stealth] (O) -- (150:1.5);
\pic [draw,green!60!black,angle radius=1cm,angle eccentricity=1.4,
"$30^\circ$"] {angle = A--O--x};
\end{tikzpicture}
\end{document}
여기서는 범위 내에서 전체를 회전하는 것이 합리적일 수 있습니다.
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{calc,decorations.pathreplacing,angles,quotes}
\newif\ifdrawdimlineleft
\newif\ifdrawdimlineright
\tikzset{dimlabel distance/.initial=5mm,
vertical lines extend/.initial=5mm,
vertical dim line/.style={gray,thin},
dim arrow line/.style={latex-latex,thin},
dim label/.style={},
left dimline/.is if=drawdimlineleft,
left dimline=true,
right dimline/.is if=drawdimlineright,
right dimline=true,
indicate dimensions/.style={decorate,decoration={
show path construction,
lineto code={
\draw[dim arrow line]
($ (\tikzinputsegmentfirst)!\pgfkeysvalueof{/tikz/dimlabel distance}!-90:(\tikzinputsegmentlast) $) -- ($ (\tikzinputsegmentlast)!\pgfkeysvalueof{/tikz/dimlabel distance}!90:(\tikzinputsegmentfirst) $)
\ifx#1\empty
\else
node[midway,sloped,fill=white,dim label]{#1}
\fi;
\ifdrawdimlineleft
\draw[vertical dim line] (\tikzinputsegmentfirst) --
($ (\tikzinputsegmentfirst)!\pgfkeysvalueof{/tikz/vertical lines
extend}!-90:(\tikzinputsegmentlast) $);
\fi
\ifdrawdimlineright
\draw[vertical dim line] (\tikzinputsegmentlast) --
($ (\tikzinputsegmentlast)!\pgfkeysvalueof{/tikz/vertical lines extend}!90:(\tikzinputsegmentfirst) $);
\fi
}}}}
\begin{document}
\foreach \X in {30,33,...,60,57,54,...,33}
{\begin{tikzpicture}
\draw[thick,-stealth] (-5.5,0) -- (5,0) coordinate(x) node[below]{$\mu$};
\draw[thick,-stealth] (0,-6.5) coordinate (my) -- (0,3) node[left]{$y$};
\pgfmathsetmacro{\myangle}{\X}
\begin{scope}[rotate=-\myangle]
\draw[dashed] (2.5,0) coordinate(A) -- (0,0) coordinate(O);
\draw[dashed,postaction={indicate dimensions={$L_1=2.5\,$m},
dim arrow line/.append style={solid}}] (O) -- (0,-2.5) coordinate(B);
\draw[thick] (A) -- ++(2.5,0);
\draw[thick,postaction={indicate dimensions={$L_2=3\,$m},
dim arrow line/.append style={solid}}] (B) -- ++ (0,-3);
\draw[thick,red,stealth-stealth] (-1.5,0) -- (O) -- (0,1.5);
\pic [draw,green!60!black,angle radius=1cm,angle eccentricity=1.4,
"$\pgfmathprintnumber{\myangle}^\circ$"] {angle = A--O--x};
\pic [draw,green!60!black,angle radius=1cm,angle eccentricity=1.4,
"$\pgfmathparse{90-\myangle}\pgfmathprintnumber{\pgfmathresult}^\circ$"] {angle = my--O--A};
\end{scope}
\end{tikzpicture}}
\end{document}