Координата TikZ, которая относится к последней «текущей координате»

Nov 29 2020

Возможно ли в рамках пути TikZ ссылаться на «текущую координату» как на другую координату?

Чтобы прояснить, чего я хочу, возьмите этот пример, который я часто делаю, потому что не знаю лучшего:

\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}

В итоге я делаю следующее:

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

потому что я (скажем) хочу провести прямую линию от текущей точки до точки, перпендикулярной другой. Но постоянно печатать - это больноcoordinate (THIS) , и я хотел бы знать, есть ли волшебная внутренняя координата, которая позволила бы мне сделать:

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

и THISзнал бы, что это значит 1,1.

Есть ли THIS, или то, что я делаю, - это лучшее, что я могу получить?

Ответы

2 Noname Nov 29 2020 at 07:18

Если вы желаете использовать toвместо --, то последняя координата сохраняется \tikztostartи может использоваться так же, как вы 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}

Конечно, вы также можете использовать \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}