tikz: coloca el nodo en la posición absoluta

tikz: coloca el nodo en la posición absoluta

¿Cómo puedo colocar un nodo en la intersección del nodo I y C (I | - C)? MWE:

\documentclass[border=2pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{chains} 
\usetikzlibrary{arrows,chains,positioning,shapes,scopes}

\begin{document}

\begin{tikzpicture}
[>=latex,node distance=.8cm,
start chain =going below,]

\tikzset{base/.style = {
        draw,rounded corners,minimum width=20mm, minimum height=6mm, align=center,
        inner sep=1mm, outer sep=0mm,
        on chain, join=by {->}}}
\tikzset{start/.style={base,minimum size=6mm,circle,fill=black}}
\tikzset{end/.style={base,circle}}
\tikzset{box/.style={base}}
\tikzset{decision/.style={base,rounded corners=0,minimum size=6mm,diamond,aspect=1.5,on chain}}

{
  \node[start] (A) {};
  \node[box] (B) {clone repository};
  \node[box] (C) {coding};
  \node[box] (D) {commit locally};
  \node[box] (E) {review};
  \node[decision] (F) {};
  {[start branch]
      \node[box,left=2cm of F] (G) {rework};
      \node[box,on chain=going above] (H) {recommit};
  }
  {[start branch]
    \node[box,right=2cm of F] (I) {submit};
    \coordinate  (O)  at (I |- C);
    \node[box] at (O) (J)  {update local repository};
  }

\draw[->] (H) -- (E);
\draw[->] (J) -- (C);
% debug code line
\draw[red] (O) -- (I) (O) -- (C);
}
\end{tikzpicture}
\end{document}

El nodo J debería colocarse en O, ¡pero en realidad no! ingrese la descripción de la imagen aquí

Respuesta1

La falta de coincidencia en la ubicación del nodo Jse debe a on chainlas propiedades de boxlos nodos. Si cancela estas propiedades, el nodo estará en el lugar donde desea estar.

Como no sé, si esto es posible hacer para un nodo particular en la cadena, lo reorganizo para que tikzsetesa on chainopción elimine basey agregue a box, que luego se usa en la definición de estilo de los estilos de otros nodos.

Con estos cambios y también algunos cambios en las líneas de conexión (que no eran lógicos en tu MWE) obtengo la siguiente imagen:

ingrese la descripción de la imagen aquí

¿Es lo que buscas?

\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{chains, shapes}
\begin{document}
    \begin{tikzpicture}[>=latex,
  node distance = 8mm,
    start chain = going below,
    base/.style = {draw, rounded corners,
                   minimum width=20mm, minimum height=6mm, 
                   align=center,
                   inner sep=1mm, outer sep=0mm,
                   },
     box/.style = {base, on chain, join=by {->}},
   start/.style = {box,minimum size=6mm,circle,fill=black},
     end/.style = {box,circle, on chain},
decision/.style = {box, diamond, aspect=1.5, 
                   sharp corners, minimum size=6mm}
                        ]
\node[start] (A) {};
\node[box] (B) {clone repository};
\node[box] (C) {coding};
\node[box] (D) {commit locally};
\node[box] (E) {review};
\node[decision] (F) {};
{%[start branch]
      \node[box,left=2cm of F] (G) {rework};
      \node[box,on chain=going above] (H) {recommit};
  }
  {%[start branch]
    \node[base,
          right=2cm of F] (I) {submit};
    \node[base]  (J)  at (I |- C) {update local repository};
  }

\draw[->] (H) -- (E);
\draw[->] (F) -- (I);
% debug code line
\draw[red,->] (I) edge (J) (J) to (C);
    \end{tikzpicture}
\end{document}

información relacionada