Ich wünsche mir ein Diagramm wie das untenstehende, in dem zwei Stäbe mit bestimmten Längen und Winkeln mit x
Achsen und ein Kreis im Ursprung dargestellt sind. Außerdem sind zwei Pfeile im Ursprung dargestellt. Wenn ich dieses schematische Bild damit zeichnen kann, Tikz
kann ich mehrere Fragen meiner Hausaufgaben in einem sehr malerischen Stil stellen.
Antwort1
Nichts davon ist besonders kompliziert. Das dimline
Zeug ist vonHier. Sie können damit siunitx
die Abmessungen und den Winkel festlegen.
\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}
Eventuell macht es hier Sinn, das Ganze in einem Scope zu drehen.
\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}