Coordenada TikZ que se refere à última "coordenada atual"

Nov 29 2020

É possível, dentro de um caminho TikZ, referir-se à "coordenada atual" como outra coordenada?

Para deixar claro o que eu quero, pegue este exemplo, que muitas vezes acabo fazendo porque não conheço melhor:

\documentclass[tikz,margin=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
\coordinate (origin) at (0,0);
% suppose the "1,1" is a very complicate (possibly unknown) coordinate
% that I would love not to repeat in the code:
\draw (origin) -| (1,1) coordinate (THIS) -- (THIS-|origin);
% This is what I would like to do:
% \draw (origin) -| (1,1) -- (THIS-|origin);
\end{tikzpicture}
\end{document}

O que acabo fazendo é:

\draw (origin) -| (1,1) coordinate (THIS) -- (THIS-|origin);

porque eu (digo) quero desenhar uma linha reta do ponto atual ao que seria um ponto perpendicular a outro. Mas é uma dor de digitar coordinate (THIS)o tempo todo, e eu gostaria de saber se existe uma coordenada interna mágica que me permitiria fazer:

\draw (origin) -| (1,1) -- (THIS-|origin);

e THISsaberia o que isso significa 1,1.

Existe THISou o que estou fazendo é o melhor que posso conseguir?

Respostas

2 Noname Nov 29 2020 at 07:18

Se você deseja usar em tovez de --, a última coordenada é armazenada em \tikztostarte pode ser usada da mesma forma que você usa THIS.

\documentclass[tikz,margin=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
\coordinate (origin) at (0,0);
% suppose the "1,1" is a very complicate (possibly unknown) coordinate
% that I would love not to repeat in the code:
% This is what I would like to do:
% \draw (origin) -| (1,1) -- (THIS-|origin);
 \draw (origin) -| (1,1)  to (\tikztostart-|origin);
\end{tikzpicture}
\end{document}

Claro, você também pode usar \THIS.

\documentclass[tikz,margin=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
\coordinate (origin) at (0,0);
\def\THIS{\tikztostart}
% suppose the "1,1" is a very complicate (possibly unknown) coordinate
% that I would love not to repeat in the code:
 \draw (origin) -| (1,1)  to (\THIS-|origin);
% This is what I would like to do:
% \draw (origin) -| (1,1) -- (THIS-|origin);
\end{tikzpicture}
\end{document}