取得 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}

在此輸入影像描述

相關內容