如何为三个线性函数之间的空间着色?

如何为三个线性函数之间的空间着色?

我知道 TeX.SX 上已经回答了大量类似的问题,但奇怪的是,我找不到适合我目的的。为此,如果这篇文章与我不知道的其他文章重复,我深表歉意。

MWE如下:

\documentclass{article}
\usepackage{mathtools}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{xcolor}

\setlength{\parindent}{0cm}

\begin{document}

\begin{tikzpicture}
\begin{axis}[xlabel=$x$,ylabel=$y$,
xmin=-15,xmax=15,ymin=-10,ymax=10, axis lines=center, axis equal, scale=1.6]

\addplot[domain=-15:15, color=blue, samples=400](\x,{\x + 1});
\addplot[domain=-15:15, color=red, samples=400](\x,{4});
\addplot[domain=-15:15, color=green, samples=400](\x,{-1/2*\x - 2});

\node at (axis cs:-2,-1) [circle, scale=0.4, draw=black!80,fill=black!80] {};
\node at (axis cs:3,4) [circle, scale=0.4, draw=black!80,fill=black!80] {};
\node at (axis cs:-12,4) [circle, scale=0.4, draw=black!80,fill=black!80] {};

\node at (axis cs:-2,0) {$P_1$};
\node at (axis cs:3,5) {$P_2$};
\node at (axis cs:-12,5) {$P_3$};
\end{axis}
\end{tikzpicture}

\end{document}

其结果为:

在此处输入图片描述

我想知道如何为这三个线性函数定义的多边形(或简单地说是三角形)着色。所有类似问题的答案都只讨论了两个“对象”之间的关系,而不是三个。我尝试了很多方法,但都没有成功。如果你能帮助我,我将不胜感激。

答案1

您在顶点处有节点,命名它们并使用\fill。请注意,您需要指定center节点的锚点。其他评论:

  • 您正在绘制直线,400 个样本比您需要的多 398 个。这只会使生成 PDF 的速度慢得多。
  • 为点创建样式可以使代码更短。
  • label您可以向点中添加,而不是添加新节点。
  • TikZ (由 加载pgfplots)会加载xcolor,因此您不必明确加载它。
  • 有了,pgfplots您就不需要使用\x,只需使用就足够了。而且,只要您只是针对 进行一些绘图,那么x编写 也足够了。您使用的语法 ,工作正常,但在这里不是必需的。\addplot {f(x)};x\addplot ({x(t)}, {y(t)});

在此处输入图片描述

\documentclass{article}
\usepackage{mathtools}
\usepackage{pgfplots}

\setlength{\parindent}{0cm}

\begin{document}

\begin{tikzpicture}[
  dot/.style={
   circle, inner sep=0pt,minimum size=3pt, draw=black!80,fill=black!80,label=#1
  }]

\begin{axis}[
  xlabel=$x$,ylabel=$y$,
  xmin=-15,xmax=15,
  ymin=-10,ymax=10,
  axis lines=center,
  axis equal,
  width=\linewidth,
  domain=-15:15,
  samples=2
]

\addplot[color=blue] {x + 1};
\addplot[color=red] {4};
\addplot[color=green] {-1/2*x - 2};

\node (P1) at (axis cs:-2,-1) [dot={below:$P_1$}] {};
\node (P2) at (axis cs:3,4) [dot={above:$P_2$}] {};
\node (P3) at (axis cs:-12,4) [dot={above:$P_3$}] {};

\fill [red,opacity=0.1] (P1.center) -- (P2.center) -- (P3.center) -- cycle;

\end{axis}
\end{tikzpicture}

\end{document}

相关内容