获取tikz中填充区域内的节点文本

获取tikz中填充区域内的节点文本

我已经做了这个图

在此处输入图片描述

从此代码:

\documentclass[tikz]{standalone}

\usetikzlibrary{patterns}

\begin{document}

\begin{tikzpicture}[domain=-90:200, x=0.025cm, y=0.15cm]

\draw[->,very thick] (-100,0) -- (250,0) node[right] {$x$};
\draw[->,very thick] (0,0) -- (0,45) node[above] {$y$};

\foreach \x in {-4,...,10} {
    \draw (20*\x,0) -- (20*\x,-1);
}
\foreach \y in {0,...,45} {
    \draw (0,\y) -- (-1,\y);
}

\draw[color=blue] plot ({\x},{34}) node[right] {$MR = 34$};
\draw[color=red] plot ({\x},{0.0018*\x*\x-0.2*\x+10}) node[above] {$MC = 0.0018 Q^2-0.2 Q + 10$};

\fill[pattern color=green, pattern=north east lines, opacity=0.9] plot[domain=-72.5840284:183.69514] ({\x},{0.0018*\x*\x-0.2*\x+10}) -- plot ({\x},{34}) -- cycle node {$DB$};

\end{tikzpicture}

\end{document}

如何才能获取DB填充区域内的带文本的节点?如果我使用node[midway]它,它将位于蓝线中间上方,但我希望它正好位于填充的绿色区域的中间。

答案1

你可以使用path picture类似

\fill[pattern color=green, pattern=north east lines, opacity=0.9,path picture={
            \node[anchor=south]  at (path picture bounding box.center) {DB};
          }] plot[domain=-72.5840284:183.69514] ({\x},{0.0018*\x*\x-0.2*\x+10}) -- plot ({\x},{34}) -- cycle;

代码:

\documentclass[tikz]{standalone}

\usetikzlibrary{patterns}

\begin{document}

\begin{tikzpicture}[domain=-90:200, x=0.025cm, y=0.15cm]

\draw[->,very thick] (-100,0) -- (250,0) node[right] {$x$};
\draw[->,very thick] (0,0) -- (0,45) node[above] {$y$};

\foreach \x in {-4,...,10} {
    \draw (20*\x,0) -- (20*\x,-1);
}
\foreach \y in {0,...,45} {
    \draw (0,\y) -- (-1,\y);
}

\draw[color=blue] plot ({\x},{34}) node[right] {$MR = 34$};
\draw[color=red] plot ({\x},{0.0018*\x*\x-0.2*\x+10}) node[above] {$MC = 0.0018 Q^2-0.2 Q + 10$};

\fill[pattern color=green, pattern=north east lines, opacity=0.9,path picture={
            \node[anchor=south]  at (path picture bounding box.center) {DB};
          }] plot[domain=-72.5840284:183.69514] ({\x},{0.0018*\x*\x-0.2*\x+10}) -- plot ({\x},{34}) -- cycle;

\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容