3

Oscillator amortized by solid friction

How can I draw this figure using LaTex ?

1
  • 4
    It's better if you have done some trials and decide what package you intend to use. – hesham Mar 22 '20 at 21:51
14

Quite a few diagrams of this type exist already on this site, but maybe not yet with patterns.meta, which gives us easier control over the patterns. (One could also employ the angles library but this may be a bit of an overkill for one arc.)

\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{decorations.pathmorphing,patterns.meta} 
\pgfdeclarepattern{
name=shatch, parameters={\hatchsize,\hatchangle,\hatchlinewidth}, 
bottom left={\pgfpoint{-.1pt}{-.1pt}},
top right={\pgfpoint{\hatchsize+.1pt}{\hatchsize+.1pt}}, tile size={\pgfpoint{\hatchsize}{\hatchsize}},
tile transformation={\pgftransformrotate{\hatchangle}}, code={
\pgfsetlinewidth{\hatchlinewidth} 
\pgfpathmoveto{\pgfpoint{-.1pt}{\hatchsize/2}} 
\pgfpathlineto{\pgfpoint{\hatchsize+.1pt}{\hatchsize/2}} 
\pgfusepath{stroke}
} }
\tikzset{
hatch size/.store in=\hatchsize,
hatch angle/.store in=\hatchangle,
hatch line width/.store in=\hatchlinewidth, 
hatch size=5pt,
hatch angle=0pt,
hatch line width=.5pt,
}
\begin{document}
\begin{tikzpicture}[declare function={beta=30;},>=stealth,semithick]
 \begin{scope}[rotate=-beta]
  \path[pattern=shatch] (0,0) rectangle (-0.4,1.2); 
  \draw[<->] (0,2) node[right] {$y$} |- (6,0) node[right]{$x$}
   coordinate[pos=0.95](x);
  \draw[decorate,decoration={zigzag,segment length=4mm,amplitude=2mm}]
   (0,0.2) -- (4,0.2) node[midway,above=2ex]{$(k,\ell)$};
  \draw[fill=cyan] (3.8,0) rectangle ++ (0.6,0.4); 
  \path (4.1,0.5) node[above right] {$M(m)$};
 \end{scope}
 \draw (x) -- ++ (-5,0);
 \draw (x) + (-2,0) arc[start angle=180,end angle=180-beta,radius=2]
  node[midway,left] {$\beta$};
 \draw[<-] (3,2) -- ++ (0,1); 
 \draw[->] (3.1,2.6) -- ++ (0.5,0) node[midway,below] {$g$}; 
\end{tikzpicture}
\end{document}

enter image description here

2
  • 2
    +1: my humble opinion. The arrows over g is very long. – Sebastiano Mar 22 '20 at 22:20
  • 10
    @Sebastiano This is just a hint at the gravity of our current situation. – user194703 Mar 22 '20 at 22:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.