TIKZ/PGF:有没有办法以编程方式获取节点的不透明度?

TIKZ/PGF:有没有办法以编程方式获取节点的不透明度?

有没有办法动态获取节点的不透明度?我想根据节点的不透明度动态修改内容的不透明度。

\documentclass[presentation]{beamer}
\usepackage{tikz}
\usepackage{transparent}


\tikzset{
    invisible/.style={opacity=0,text opacity=0},
    visible on/.style={alt=#1{}{invisible}},
    alt/.code args={<#1>#2#3}{\alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}}}

\begin{document}
  \begin{frame}
    \begin{figure}
      \centering
      \begin{tikzpicture}
          \node[visible on=<1->] (qAA) at (0, 0) {
            %{\transparent{\getOpacity+0.01}\color{green}{Print the opacity})
          };
        \end{scope}
      \end{tikzpicture}
    \end{figure}
  \end{frame}
\end{document}

为了提供更多背景信息和完整代码:我试图从底部逐层打印一棵树。我希望兄弟姐妹/堂兄弟对齐,并且只有少量不透明文本。因此我有一些幻影节点(通过将不透明度设置为 0}。

看起来\transparent干扰了 TIKZ 的不透明度。不知道如何解决这个问题。我无法使用,forest因为我计划使用更多节点自定义图形。

\newcommand{\x}{{\color{blue}\ensuremath{x}}}

\begin{document}
\begin{frame}
\begin{figure}
    \begin{tikzpicture}[every text node part/.style={align=center}]
        \node[visible on=<3->] (qAA) at (0, 0) {
                {\transparent{0.3}$g = $}\\$f(\x)$
        };
        \node[visible on=<2->] (qBA) at (-3, -2) {
                {\transparent{0.3}$g = $}\\$f_{0}(\x)$
        };
        \node[visible on=<2->] (qBB) at (3, -2) {
                {\transparent{0}$g = $}\\$f_{1}(\x)$
        };
        \node[visible on=<1->] (qCA) at (-3, -4) {
            {\transparent{0.3}$g = $}\\$f_{0,0}(\x)$
        };
        \node[visible on=<1->] (qCD) at (3, -4) {
            {\transparent{0}$g = $}\\$f_{1,1}(\x)$
        };
    \end{tikzpicture}
\end{figure}
\end{frame}
\end{document}

答案1

我不会使用透明文本,因为透明文本带来的问题比它解决的问题还多。相反,我会通过将文本颜色与背景颜色混合来更改文本颜色。如果 beamer 在覆盖层中发现之前变暗的文本,它也会这样做。

\documentclass[presentation]{beamer}
\usepackage{tikz}

\usetikzlibrary{overlay-beamer-styles}
\newcommand{\x}{{\color{blue}\ensuremath{x}}}

\begin{document}
\begin{frame}
\begin{figure}
    \begin{tikzpicture}[every text node part/.style={align=center}]
        \node[visible on=<3->] (qAA) at (0, 0) {
                \begin{colormixin}{20!parent.bg}$g = $\end{colormixin}\\$f(\x)$
        };
        \node[visible on=<2->] (qBA) at (-3, -2) {
                \begin{colormixin}{20!parent.bg}$g = $\end{colormixin}\\$f_{0}(\x)$
        };
        \node[visible on=<2->] (qBB) at (3, -2) {
                \begin{colormixin}{20!parent.bg}$g = $\end{colormixin}\\$f_{1}(\x)$
        };
        \node[visible on=<1->] (qCA) at (-3, -4) {
                \begin{colormixin}{20!parent.bg}$g = $\end{colormixin}\\$f_{0,0}(\x)$
        };
        \node[visible on=<1->] (qCD) at (3, -4) {
                \begin{colormixin}{20!parent.bg}$g = $\end{colormixin}\\$f_{1,1}(\x)$
        };
    \end{tikzpicture}
\end{figure}
\end{frame}
\end{document}

在此处输入图片描述

相关内容