%3F.png)
Qual é a diferença entre os pares de valores-chave TikZ draw=none
e draw opacity=0
? Eles são funcionalmente equivalentes ou existem situações em que um deve ser preferido a outro? Da mesma forma, qual é a diferença entre fill=none
e fill opacity=0
?
Responder1
draw=none
(que é igual ao \path
comando) na verdade faz com que o TikZ jogue fora o caminho construído e a caixa delimitadora não seja perturbada (absurdo, ele altera a caixa delimitadora, mas apenas line width
é ignorado. Obrigado a @Fritz por perceber essa estupidez).
draw opacity=0
no entanto, faz com que o caminho seja desenhado sem tinta, de modo que a caixa delimitadora seja atualizada com line width
a opção em vigor, de modo que o estilo da linha seja importante para o cálculo da caixa delimitadora.
\begin{tikzpicture}
\draw (0,0) rectangle (3,3);
\draw[opacity=0,line width=1cm] (0,0) rectangle (3,3); % Enlarge the bounding box
\pgfsetlinewidth{5cm} % this has no effect
\pgfpathmoveto{\pgfpointorigin}
\pgfpathlineto{\pgfpoint{4cm}{4cm}} % this updates the known max x,y coordinates!!
\pgfusepath{} % even though it's thrown away.
\begin{pgfinterruptboundingbox}
\pgfpathmoveto{\pgfpointorigin}
\pgfpathlineto{\pgfpoint{10cm}{10cm}} % Nothing happens
\pgfusepath{}
\end{pgfinterruptboundingbox}
\draw[dashed,thin] (current bounding box.north east) rectangle (current bounding box.south west);
\end{tikzpicture}
Responder2
filling opacity
aplica-se não apenas a operações de preenchimento, mas também a textos e imagens; o exemplo a seguir mostra um caso em que fill=none
e fill opacity=0
(na verdade usei fill opacity=0.2
apenas para tornar o texto visível) produz resultados diferentes; fill=none
não tem efeito no rótulo do nó, mas fill opacity=<value>
afetará o texto:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\fill[olive] (0,0) rectangle (3,2);
\node[fill opacity=0.2] at (3,2) {\huge B};
\node[fill=none] at (0,0) {\huge A};
\end{tikzpicture}
\end{document}