如何绘制墙体剖面图

如何绘制墙体剖面图

我怎样才能绘制一个墙体剖面图,其中正弦图的一部分位于中间,就像图片中的那样。 在此处输入图片描述

我写了这段代码:

\documentclass{article}
\usepackage{tikz}
\begin{document}
    \begin{tikzpicture}
         \begin{axis}[axis lines=middle,
         enlargelimits,
         xtick={3.14,6.28},ytick={0.5,1},
         xticklabels={$\frac{\lambda}{2}$, $\lambda$},
         yticklabels={, $1$},
         xlabel=$x$,ylabel=$s(t)$]
         \addplot[domain=0:pi,samples=40,smooth, thick,blue]{sin(deg(x)) };
         \end{axis}
    \end{tikzpicture}
\end{document}

答案1

像这样?

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{patterns}

\begin{document}
    \begin{tikzpicture}

    \draw (0,0) --++(90:3cm);
    \fill[pattern=north west lines] (0,0) rectangle ++(-1,3); 
    \draw (2,0) --++(90:3cm);
    \fill[pattern=north west lines] (2,0) rectangle ++(1,3); 

    \draw (0,2) sin ++(1,1) cos ++(1,-1);

    \end{tikzpicture}
\end{document}

在此处输入图片描述

编辑:

由于sincos绘图操作仅在区间上进行绘制[0,\pi/2],因此对于一个完整的周期,需要四个操作符。

另一种解决方案可能是plot操作员。

两种解决方案如下所示。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{patterns}

\begin{document}
    \begin{tikzpicture}

    \draw (0,0) --++(90:3cm);
    \fill[pattern=north west lines] (0,0) rectangle ++(-1,3); 
    \draw (2,0) --++(90:3cm);
    \fill[pattern=north west lines] (2,0) rectangle ++(1,3); 

    \draw (0,2) sin ++(0.5,0.5) cos ++(0.5,-0.5) 
                sin ++(0.5,-0.5) cos ++(0.5,0.5);

    \draw[red, scale=2/6.2829, domain=0:6.2829] plot (\x,{1.5+sin(\x r)});

    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容