有大佬知道怎么用tikz画吗

2020-05-05 08:09发布

[图]

8`A~Y8$LX2)9VLXQB6PB7EA.png

4条回答
咸菜的味道
2020-05-10 00:42
\begin{tikzpicture}
  \colorlet{fillcolor}{cyan!70!gray!10!white}
  \colorlet{curvecolor}{cyan!70!black}
  \tikzmath{
    \ymax=4.5;%y 轴的上端
    \xmax=7.5;%x 轴的右端
    \sizeA=0.2;%红色矩形框宽度
    \sizeB=0.4;%箭头标签上部与曲线的水平间距
    \domianL=1;%定义域左端点
    \domainR=6.5;%定义域右端点
    \samplesN=101;%自变量样本点的个数,个数不能太少
    \onestep=(\domainR-\domianL)/(\samplesN-1);%相邻两个自变量样本点的间隔,要让 \onestep 是比较简单的有限数才好
    \secondsample=\domianL+\onestep;%第二个自变量样本点
    \pA=int(0.5*\samplesN);%一个自变量样本点的序号,对应的点用于添加标签
    \pB=int(0.7*\samplesN);%一个自变量样本点的序号,对应的点用于画红色矩形
  }
  %使用函数 sin(deg(pi/3*(\x-1)))+3 定义坐标点 (p1), (p2), ...... , (p\samplesN)
  \foreach \i[count=\j] in {\domianL,\secondsample,...,\domainR}
  {\coordinate (p\j) at (\i,{sin(deg(pi/3*(\i-1)))+3});}
  %几个需要加标签的点
  \begin{scope}[inner sep=0pt,text height=1em]
    \path (0,0 -| p1) coordinate (a) node[below]{$a$} ;
    \path (0,0 -| p\pB) coordinate (x) node[below left]{$x$};
    \path ($(x)+(\sizeA,0)$) coordinate (x+h) node[below right]{$x+h$};
    \path (a -| p\samplesN) coordinate (b) node[below]{$b$};
    \path (0,0) node[below]{$0$} ;
  \end{scope}
  %剪切填充色
  \begin{scope}
    \clip (a) rectangle (x+h |- 0,\ymax);
    \fill [fill=fillcolor] (a) \foreach \i in {1,...,\samplesN}{--(p\i)} |- (a);
  \end{scope}
  %画标识线
  \begin{scope}[thick]
    \draw [draw=red](a) --(p1);
    \draw [draw=red](x+h) rectangle (p\pB);
    \draw (p\samplesN) -- (b);
  \end{scope}
  %画箭头标识
  \draw [{Bar[width=6mm]<}->]($(p\pB)+(-\sizeB,0)$) coordinate (t) -- node[fill=fillcolor,inner ysep=0pt,rotate=90]{$f(x)$} (t |- 0,0);
  %函数标签
  \draw (p\pA) --++(20:0.8) node[right]{$y=f(t)$};
  %函数曲线
  \draw [draw=curvecolor,thick] (p1) \foreach \i in {2,...,\samplesN}{--(p\i)};
  %坐标轴线
  \draw [-Stealth,thick](0,0)--(\xmax,0) node [right] {$t$};
  \draw [-Stealth,thick](0,0)--(0,\ymax) node [above] {$y$};
\end{tikzpicture}

2020-05-10 00-31-44屏幕截图.png


这个例子 借用 @lichangkai 的例子里的函数,这是纯粹使用 tikz 的例子,需要多少了解一下 tikz 才好使。

比较起来,用 tkz-fct宏包方便一些,因为这个宏包提供现成的工具。

一周热门 更多>