Tikz:具有重叠合并颜色的阴影椭圆

Tikz:具有重叠合并颜色的阴影椭圆

如何在 TikZ 中绘制两个椭圆,比如一个灰色椭圆,其中心位于 (1,1) 和 (2,2),另一个橙色椭圆,其中心位于 (0,2) 和 (1,3),使得它们有小的重叠部分,颜色在此重叠?

我现在确实能画出圆圈,但在重叠处一个圆圈会盖过另一个圆圈。

答案1

标准方法,即自动混色是[blend group=screen]在内部使用[transparency group],参见手册.pdf23.3 节混合模式。

在此处输入图片描述

\documentclass[tikz,border=5mm]{standalone}
\begin{document}
\begin{tikzpicture}
\begin{scope}[transparency group]
\begin{scope}[blend mode=screen]
\fill[blue] (1,1) ellipse (2 and 1);
\fill[red]  (2,2) ellipse (2 and 1);
\end{scope}
\end{scope}
\end{tikzpicture}
\end{document}

使用简写形式的等效且更短的代码[blend group=screen]

在此处输入图片描述

\documentclass[tikz,border=5mm]{standalone}
\begin{document}
\begin{tikzpicture}[blend group=screen]
\fill[cyan] (1,1) ellipse (2 and 1);
\fill[magenta]  (2,2) ellipse (2 and 1);
\end{tikzpicture}
\end{document}

编辑(由@h​​pekristiansen)仅显示rgb选项对加法混合颜色与blend mode=screen原色混合的影响:

rgb选项:

\documentclass[tikz,border=5mm,rgb]{standalone}
\usepackage{xcolor}
\begin{document}
\begin{tikzpicture}[blend group=screen]
\fill[red] ( 90:.6) circle (1);
\fill[green] (210:.6) circle (1);
\fill[blue] (330:.6) circle (1);
\fill[yellow] (2,0) circle(.2); \fill[magenta] (2,.5) circle(.2); \fill[cyan] (2,1) circle(.2); 
\end{tikzpicture}
\end{document}

RGB 混合

rgb选择项:

不使用 rgb 选项进行混合

答案2

\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}

    \begin{tikzpicture}
        \fill[cyan] (1,1) ellipse (2 and 1);
        \fill[orange,opacity=.8] (2,2) ellipse (2 and 1);
    \end{tikzpicture}

    \begin{tikzpicture}
        \fill[cyan] (1,1) ellipse (2 and 1);
        \fill[orange] (2,2) ellipse (2 and 1);
        \begin{scope}
            \clip (1,1) ellipse (2 and 1);
            \fill[orange!80!cyan] (2,2) ellipse (2 and 1);      
        \end{scope}
    \end{tikzpicture}

\end{document}

V1 V2

答案3

\documentclass[tikz, border=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
\fill[red, rotate around={45:(1.5,1.5)}, opacity=0.5] (1.5,1.5) ellipse [x radius=sqrt(1.5), y radius=1];
\fill (1,1) circle[radius=0.1] (2,2) circle[radius=0.1];
\fill[green, rotate around={45:(0.5,2.5)}, opacity=0.5] (0.5,2.5) ellipse [x radius=sqrt(1.5), y radius=1];
\fill (0,2) circle[radius=0.1] (1,3) circle[radius=0.1];
\end{tikzpicture}
\end{document}

两个重叠的椭圆

相关内容