
Estoy intentando crear la siguiente imagen en tikz:
Logré trazarlo, pero no con la parte superior inclinada:
\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}
¿Hay alguna manera de rotar la parte superior de la imagen, o tengo que trazarla nuevamente, esta vez inclinada desde el principio?
Respuesta1
La mayor parte del código se incluye en scope
el cual luego se gira hasta obtener el ángulo deseado. Después del alcance, dibuje el rectángulo (rojo en la imagen) y la línea base horizontal:
\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}