我怎样才能绘制我的函数域图?

我怎样才能绘制我的函数域图?

我怎样才能做到这一点?

在此处输入图片描述

我不知道该怎么做。是否可以在 LaTeX 中执行此操作,还是应该使用 GeoGebra 创建图形并将其插入?

答案1

使用 TikZ 和 PGFkeys 有点乐趣。

代码

\documentclass[varwidth]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.pathmorphing}
\tikzset{
  fromto/.code=\pgfqkeys{/tikz/fromto}{#1}, fromto/.cd,
    from/.initial=0, to/.initial=10,  min/.initial=0, max/.initial=10,
    fromto style/.style={circle, draw, inner sep=+0pt, minimum size=+3pt},
    include/.style={/tikz/fromto/fromto style, fill=black},
    exclude/.style={/tikz/fromto/fromto style, fill=white},
    From/.is choice,
      From/in/.style={/tikz/fromto/from style/.style={fromto/include}},
      From/ex/.style={/tikz/fromto/from style/.style={fromto/exclude}},
      From/no/.style={/tikz/fromto/from style/.style={coordinate, label/.style}},
    To/.is choice,
      To/in/.style={/tikz/fromto/to style/.style={fromto/fromto style, fromto/include}},
      To/ex/.style={/tikz/fromto/to style/.style={fromto/fromto style, fromto/exclude}},
      To/no/.style={/tikz/fromto/to style/.style={coordinate, label/.style}},
    From=no, To=no,
    every fromto picture/.style={x=2.5mm, baseline, >=latex,
      every label/.style={overlay, /utils/exec=\scriptsize}},
    axes/.style={->},
    range/.style={decoration={snake, amplitude=+1pt, segment length=+2pt}, decorate}}
\newcommand*\fromto[1][]{
  \tikzpicture[fromto={#1}, fromto/every fromto picture]
    \draw[fromto/axes/.try] (right:\pgfkeysvalueof{/tikz/fromto/min}) --
      (right:\pgfkeysvalueof{/tikz/fromto/max}) -- ++ (right:10\pgflinewidth);
    \draw[fromto/range/.try] (right:\pgfkeysvalueof{/tikz/fromto/from})
      -- (right:\pgfkeysvalueof{/tikz/fromto/to})
      node[at start, fromto/from style, label=$\pgfkeysvalueof{/tikz/fromto/from}$]{} 
      node[at end, fromto/to style, label=$\pgfkeysvalueof{/tikz/fromto/to}$]{};
  \endtikzpicture}
\begin{document}
\begin{enumerate}
\item \fromto[from=3, From=ex]
\item \fromto[to=7, To=in]
\item \fromto[from=3, From=in, to=6, To=ex]
\item \fromto[min=-5, max=15, from=-3, to=14, From=in, To=ex]
\end{enumerate}
\end{document}

输出

在此处输入图片描述

答案2

使用 PSTricks 只是为了好玩!

\documentclass[pstricks,border=15pt]{standalone}
\usepackage{pst-coil}
\psset{coilheight=.4,coilwidth=5pt,coilarm=2.5pt,linejoin=1,arrowinset=0}
\begin{document}

\begin{pspicture}(6,-3)
    % x > 3
    \psline(0,0)(6,0)
    \uput[d](2,0){$3$}
    \pszigzag[coilarmB=5pt]{o->}(2,0)(6,0)
    % x >= 3
    \psline(0,-1)(6,-1)
    \uput[d](2,-1){$3$}
    \pszigzag[coilarmB=5pt]{*->}(2,-1)(6,-1)
    % 2 <= x < 3
    \psline(0,-2)(6,-2)
    \uput[d](2,-2){$2$}
    \uput[d](4,-2){$3$}
    \pszigzag{*-o}(2,-2)(4,-2)
    % x < 2 or x >=3
    \psline(0,-3)(6,-3)
    \uput[d](2,-3){$2$}
    \uput[d](4,-3){$3$}
    \pszigzag[coilarmA=5pt]{<-o}(0,-3)(2,-3)
    \pszigzag[coilarmB=5pt]{*->}(4,-3)(6,-3)
\end{pspicture}}
\end{document}

在此处输入图片描述

笔记

  • coilheight是一个因子(无量纲)。
  • coilwidth是长度。
  • coilarm是长度。

它们之间的关联公式如下。

如果代表从到的L距离,代表绕组数,则(x1,y1)(x2,y2)\pszigzag(x1,y1)(x2,y2)N

coilheight=(L-2*coilarm)/(coilwidth*N)

幸运的是,您不需要在上述每种情况下都保持绕组数相等。这就是为什么我们只是让绕组数自动分配。

如果您有兴趣分配绕组数,请参阅我的另一个答案在这里

相关内容