Desejo ter um gráfico como o abaixo, no qual x
são mostradas duas hastes com comprimentos e ângulos especificados com o eixo e um círculo na origem. Além disso, duas setas que aparecem na origem. Se eu conseguir traçar esta imagem esquemática, Tikz
poderei fornecer várias questões do meu dever de casa em um estilo muito pitoresco.
Responder1
Nada disso é particularmente complicado. A dimline
coisa é deaqui. Você pode usar siunitx
para compor as dimensões e o ângulo.
\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}
Pode fazer sentido aqui girar tudo em um escopo.
\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}