Alterando a cor de um único intervalo em um conjunto Cantor feito com o comando Decorar

Alterando a cor de um único intervalo em um conjunto Cantor feito com o comando Decorar

Eu tenho a seguinte imagem TiKZ de um conjunto Cantor.

\documentclass[tikz,border=5pt]{standalone}
\usetikzlibrary{decorations.fractals}
\begin{document}
 \begin{tikzpicture}[decoration=Cantor set,line width=2mm]
      \draw (0,0) -- (12,0);
      \draw decorate{ (0,-.5) -- (12,-.5) };
      \draw decorate{ decorate{ (0,-1) -- (12,-1) }};
      \draw decorate{ decorate{ decorate{ (0,-1.5) -- (12,-1.5) }}};
      \draw decorate{ decorate{ decorate{ decorate{ (0,-2) -- (12,-2) }}}};
      \draw decorate{ decorate{ decorate{ decorate{ decorate{ (0,-2.5) -- (12,-2.5) }}}}};
      \draw decorate{ decorate{ decorate{ decorate{ decorate{ decorate{ (0,-3) -- (12,-3) }}}}}};
    \end{tikzpicture}
\end{document}

Como eu mudaria a cor de um único intervalo nesta imagem, digamos, o terceiro da esquerda na 4ª linha?

Responder1

insira a descrição da imagem aqui

Você tem que fazer as contas por trás da construção do conjunto Cantor. Modifiquei um pouco seu código e inseri alguns parâmetros; principalmente \N = 3para obter o segmento modificado. Na verdade, modifiquei dois segmentos para ilustrar a fórmula matemática usada.

O código

\documentclass[tikz,border=5pt]{standalone}
\usetikzlibrary{decorations.fractals}
\usetikzlibrary{math}
\begin{document}

\begin{tikzpicture}[evaluate={%
    real \L, \dy; \L = 12; \dy = -.5;
    integer \N; \N = 3;},
  decoration=Cantor set, line width=2mm]
  \draw (0, 0) -- ++(\L, 0);
  \draw decorate{ (0, 1*\dy) -- ++(\L, 0) };
  \draw decorate{
    decorate{ (0, 2*\dy) -- ++(\L, 0) }
  };
  \draw decorate{
    decorate{
      decorate{ (0, 3*\dy) -- ++(\L, 0) }
    }
  };
  \draw decorate{
    decorate{
      decorate{
        decorate{ (0, 4*\dy) -- ++(\L, 0) }
      }
    }
  };
  \draw decorate{
    decorate{
      decorate{
        decorate{
          decorate{ (0, 5*\dy) -- ++(\L, 0) }
        }
      }
    }
  };
  \draw decorate{
    decorate{
      decorate{
        decorate{
          decorate{
            decorate{ (0, 6*\dy) -- ++(\L, 0) }
          }
        }
      }
    }
  };
  \draw[red] ({\L*(2/pow(3, \N-1))}, \N*\dy)
  -- ++({\L*(1/pow(3, \N))}, 0);
  \draw[blue] ({\L*(2/pow(3, \N-1) +2/pow(3, \N))}, \N*\dy)
  -- ++({\L*(1/pow(3, \N))}, 0);
\end{tikzpicture}
\end{document}

informação relacionada