tikz で線をノードとして使用する

tikz で線をノードとして使用する

tikz で行をノードとして使用できるようにする構文はありますか? 次の例では:

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

ここに画像の説明を入力してください

\draw (C)--[(A)--(B)]の代わりにのようなものを書きたいと思います\draw (C)--(2,0)。もちろんこの例ではノードの座標を明示的に知っていますが、実際の図ではそうではありません。サイズを変更する何かを追加するたびに、明示的なノードの座標を試行錯誤して調整する必要があります。

ありがとう

答え1

local bounding box=<node name>ここで必要なのはオプションです。

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

アップデート:投影修飾子バージョン:

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

関連情報