
Ich versuche, das folgende Bild in Tikz zu erstellen:
Ich konnte es zeichnen, allerdings nicht mit geneigtem oberen Teil:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz, pgfplots}
\usetikzlibrary{positioning}
\usetikzlibrary{arrows.meta}
\tikzset{>={Classical TikZ Rightarrow[width=2mm,length=2mm]}}
\newcommand{\newCommandName}{text to insert}
\newcommand\li{10}
\newcommand\ra{1.5}
\newcommand\net{3.5}
\newcommand\ortl{5}
\newcommand\midarr{1}
\begin{document}
\begin{figure}[h!]\centering
\begin{tikzpicture}[scale=0.6]
% The base line:
\draw (0,0)--(\li,0);
%The circles:
\draw (\ra, \ra) circle (\ra);
\draw (\li - \ra, \ra) circle (\ra);
%Circle radie:
\draw[<->] (\ra, \ra) -- node[above] {$\frac{k}{2}$} (0, \ra);
\draw[<->] (\li - \ra, \ra) -- node[above] {$\frac{k}{2}$} (\li, \ra);
%Inner Orthogonal lines:
\draw[dashed] (\ra,0)--(\ra,\net);
\draw[dashed] (\li - \ra,0)--(\li-\ra,\net);
% l-k line
\draw[<->] (\ra,\net) -- node[above] {$l-k$} (\li-\ra,\net);
%Outer Orthogonal lines:
\draw[dashed] (0,0)--(0,\ortl);
\draw[dashed] (\li,0)--(\li,\ortl);
% l line
\draw[<->] (0,\ortl) -- node[above] {$l$} (\li,\ortl);
% Arrow in the middle:
\draw[-{Latex[length=2.5mm]}, line width=1] (\li *0.5-\midarr,\ra)--(\li*0.5 + \midarr,\ra);
% Block under the graph:
\draw[draw=black] (\ra-0.5,0) rectangle ++(0.5,-1);
\end{tikzpicture}
\end{figure}
\end{document}
Gibt es eine Möglichkeit, den oberen Teil des Bildes zu drehen, oder muss ich es erneut plotten, diesmal von Anfang an geneigt?
Antwort1
Der Großteil des Codes enthält Elemente, scope
die dann für den gewünschten Winkel gedreht werden. Zeichnen Sie nach dem Umfang ein Rechteck (rot im Bild) und eine horizontale Grundlinie:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz, pgfplots}
\usetikzlibrary{positioning}
\usetikzlibrary{arrows.meta}
\tikzset{>={Classical TikZ Rightarrow[width=2mm,length=2mm]}}
\newcommand{\newCommandName}{text to insert}
\newcommand\li{10}
\newcommand\ra{1.5}
\newcommand\net{3.5}
\newcommand\ortl{5}
\newcommand\midarr{1}
\begin{document}
\begin{figure}[h!]\centering
\begin{tikzpicture}[scale=0.6]
\begin{scope}[rotate=-5]
% The base line:
\draw (0,0) -- ++ (0.5,0) coordinate (aux1) -- (\li,0);
%The circles:
\draw (\ra, \ra) circle (\ra);
\draw (\li - \ra, \ra) circle (\ra);
%Circle radie:
\draw[<->] (\ra, \ra) -- node[above] {$\frac{k}{2}$} (0, \ra);
\draw[<->] (\li - \ra, \ra) -- node[above] {$\frac{k}{2}$} (\li, \ra);
%Inner Orthogonal lines:
\draw[dashed] (\ra,0)--(\ra,\net);
\draw[dashed] (\li - \ra,0)--(\li-\ra,\net);
% l-k line
\draw[<->] (\ra,\net) -- node[above] {$l-k$} (\li-\ra,\net);
%Outer Orthogonal lines:
\draw[dashed] (0,0)--(0,\ortl);
\draw[dashed] (\li,0)--(\li,\ortl);
% l line
\draw[<->] (0,\ortl) -- node[above] {$l$} (\li,\ortl);
% Arrow in the middle:
\draw[-{Latex[length=2.5mm]}, line width=1] (\li *0.5-\midarr,\ra)--(\li*0.5 + \midarr,\ra);
\end{scope}
% Block under the graph:
\draw (-5:\li) -- ++ (-\li,0) coordinate (aux2);
\draw[draw=red] (aux1) rectangle (aux2);
\end{tikzpicture}
\end{figure}
\end{document}