正确裁剪区域

正确裁剪区域

试着思考这个问题函数的交点或多边形 tikz? 我终于找到了我长期存在的问题 - 如何正确裁剪和填充区域?使用 tkz-fct MWE:

\documentclass{standalone}
\usepackage{tikz}
\usepackage{tkz-fct}

\begin{document}
\begin{tikzpicture}[scale=0.7]
\tkzInit[xmin=-1,xmax=20,ymin=-1,ymax=20]
\tkzAxeXY
\tkzGrid

\tkzFct[thick, red, domain=-1:20]{29-6*\x}
\tkzFct[thick, green, domain=-1:20]{4.8-0.2*\x}
\tkzFct[thick, blue, domain=-1:6]{(16-4*\x)/2}

\clip (1.5,20) --   (4.2,3.9) -- (20,0.8) -- (20,20)-- cycle;
\fill[blue!20,fill opacity=.7] (1.5,0) rectangle (20,20);

%\clip (0,8) --  (4,0) --  (4.8,0) --  (1.5,20) -- (0,20)-- cycle;
%\fill[red!20,fill opacity=.7] (0,0) rectangle (5,20);

%\clip (4,0) --(1.8,4.45) --  (20,0.8)-- (20,0) -- cycle;
%\fill[green!20,fill opacity=.7] (1.8,0) rectangle (20,20);

\end{tikzpicture}

\end{document}

地区 如果有人打开评论,图片就无效了。我该如何\clip正确使用?

答案1

A\clip会影响其之后的所有事物,为了限制其影响,请将其scope与应被剪裁的事物一起放置在环境中。

在这种情况下,填充将部分覆盖绘制的线条,要解决这个问题,只需将\tkzFct线条移动到图表的末尾。

\documentclass{standalone}
\usepackage{tikz}
\usepackage{tkz-fct}

\begin{document}
\begin{tikzpicture}[scale=0.7]
\tkzInit[xmin=-1,xmax=20,ymin=-1,ymax=20]
\tkzAxeXY
\tkzGrid

\begin{scope}
\clip (1.5,20) --   (4.2,3.9) -- (20,0.8) -- (20,20)-- cycle;
\fill[blue!20,fill opacity=.7] (1.5,0) rectangle (20,20);
\end{scope}
\begin{scope}
\clip (0,8) --  (4,0) --  (4.8,0) --  (1.5,20) -- (0,20)-- cycle;
\fill[red!20,fill opacity=.7] (0,0) rectangle (5,20);
\end{scope}
\begin{scope}
\clip (4,0) --(1.8,4.45) --  (20,0.8)-- (20,0) -- cycle;
\fill[green!20,fill opacity=.7] (1.8,0) rectangle (20,20);
\end{scope}

\tkzFct[thick, red, domain=-1:20]{29-6*\x}
\tkzFct[thick, green, domain=-1:20]{4.8-0.2*\x}
\tkzFct[thick, blue, domain=-1:6]{(16-4*\x)/2}

\end{tikzpicture}

\end{document}

相关内容