为什么不透明的红色和绿色物体之间重叠区域的颜色不会变成不透明的黄色?

为什么不透明的红色和绿色物体之间重叠区域的颜色不会变成不透明的黄色?

理论上,红色和绿色加性混合会产生黄色。

在我的思维模型中,将不透明的红色和不透明的绿色混合在一起会产生不透明的黄色。

但接下来的尝试,我得到了与我的心目中的模型不同的结果。

为什么?

替代文本

最小代码 (PSTricks)

\documentclass[dvipsnames,dvips,rgb]{minimal}
\usepackage{pstricks}

\begin{document}
\begin{pspicture}(3,3)
  \psset{fillstyle=solid,opacity=0.5,linestyle=none}
    \pscircle[fillcolor=red](1,1){1}  
    \pscircle[fillcolor=green](2,1){1}  
    \psframe[fillcolor=yellow](0,2)(3,3)
\end{pspicture} 
\end{document}

最小代码(PGF/Tikz)

\documentclass[dvipsnames,dvips,rgb]{minimal}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
    \draw [fill=red,opacity=0.5](1,1) circle (1);
    \draw [fill=green,opacity=0.5](2,1) circle (1);
    \draw [fill=yellow,opacity=0.5] (0,2)--(0,3)--(3,3)--(3,2)--cycle;
\end{tikzpicture} 
\end{document}

答案1

您得到的结果不是您所期望的,因为 tikz 使用的是 rgb 颜色模型;请尝试以下文档以了解颜色模型的重要性。由于 tikz 不支持 hsb,因此您的直观混合模型不起作用。

\documentclass{article}

\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
    \draw [fill=red,opacity=0.5](1,1) circle (1);
    \draw [fill=green!50,opacity=0.5](2,1) circle (1);
    \draw [fill=yellow,opacity=0.5] (0,2)--(0,3)--(3,3)--(3,2)--cycle;
\end{tikzpicture}

Equal parts mixture of red!50 and green!50 (rgb model):
{\color{rgb:red!50,1;green!50,1}\rule{1cm}{1cm}}

This is equivalent to your overlapping circles.

Equal parts mixture of red!50 and green!50 (hsb model):
{\color{hsb:red!50,1;green!50,1}\rule{1cm}{1cm}}

This is equivalent to what you expected.

\end{document}

相关内容