
¿Existe una sintaxis que permita usar una línea como nodo en tikz? En el siguiente ejemplo:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
%dummy nodes
\node (A) at (0,0) {};
\node (B) at (5,0) {};
\node (C) at (2,-5) {};
\draw (A)--(B);
\draw (C)--(2,0);
\end{tikzpicture}
\end{document}
Me gustaría escribir algo como \draw (C)--[(A)--(B)]
en lugar de \draw (C)--(2,0)
. Por supuesto, en este ejemplo conozco explícitamente las coordenadas de los nodos, pero en mi diagrama real no las conozco, y cada vez que agrego algo que cambia su tamaño, tengo que ajustar por prueba y error las coordenadas del nodo explícito. .
Gracias
Respuesta1
La opción local bounding box=<node name>
es lo que necesitas aquí.
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
%dummy nodes
\node (A) at (0,0) {};
\node (B) at (5,0) {};
\node (C) at (2,-5) {};
% this creates a rectangle node named AB
\draw[local bounding box=AB] (A)--(B);
\draw (C) |- (AB);
\end{tikzpicture}
\end{document}
Actualizar:Y una versión modificadora de proyección:
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
%dummy nodes
\node (A) at (0,0) {};
\node (B) at (5,0) {};
\node (C) at (2,-5) {};
\draw (A)--(B);
% draw a line from node C to the projection of C on line A to B
% see pgfmanual, sec. 13.5.5 _The Syntax of Projection Modifiers_
\draw (C) |- ($(A)!(C)!(B)$);
\end{tikzpicture}
\end{document}