Consistencia al dibujar `(Punto A) hasta [doblar a la derecha = 30] (Punto B)` en un diagrama `TikZ`

Consistencia al dibujar `(Punto A) hasta [doblar a la derecha = 30] (Punto B)` en un diagrama `TikZ`

En el siguiente TikZdiagrama, he representado un gráfico en expansión: una secuencia de gráficos simples. Los comandos parecidos

\draw[-latex] (Point A) to[bend right=30] (Point B)

indicar la expansión en un determinado paso. Esto se ve bien cuando (Point A)está directamente arriba (Point B): la punta de flecha va hacia la esquina noroeste de un nodo que contiene una fracción. La tercera (y última) de estas flechas termina en a (Point B)que está al sureste de a (Point A). ( (Point B)En este caso, contiene la fracción 1/1escrita en verde. Es un nodo temporal que está escrito para ilustrar mi preocupación). En este caso, la punta de flecha parece ir hacia el borde occidental del nodo. ¿Cómo se puede modificar esta última flecha para que la punta de la flecha vaya hacia la esquina noreste del nodo?

\documentclass{amsart}
\usepackage{amssymb}
\usepackage{mathtools,array}

\usepackage{tikz}
\usetikzlibrary{calc,intersections}

\begin{document}


\begin{tikzpicture}[nodes={inner sep=0, font=\scriptsize,
execute at begin node={\setlength\abovedisplayskip{0.75ex}%
\setlength\belowdisplayskip{0.5ex}%
\setlength\abovedisplayshortskip{0.75ex}%
\setlength\belowdisplayshortskip{0.5ex}}},
shorten/.style={shorten >=#1,shorten <=#1}]

%A sequence of graphs is drawn, starting with the vertex with the b-label b.


%Here is the blow-up of the vertex labeled b.
\draw[fill] (-4,0) circle (1.5pt);
\node[anchor=north] (label_for_Vertex_b) at ($(-4,0) +(0,-0.25)$){\textit{b}};
\node[anchor=south] at ($(-4,0) +(0,0.25)$){$\dfrac{0}{1}$};
%
%
\draw (-4,-3) -- (-2,-3);
\draw[fill] (-4,-3) circle (1.5pt);
\draw[fill] (-2,-3) circle (1.5pt);
%
\node[anchor=north] at ($(-4,-3) +(0,-0.25)$){\textit{b}};
\node[anchor=south] (label_for_Farey_Fraction_at_Vertex_b) at ($(-4,-3) +(0,0.25)$){$\dfrac{0}{1}$};
%
\node[anchor=north] (label_for_Vertex_b-1) at ($(-2,-3) +(0,-0.25)$){$b - 1$};
\node[anchor=south] at ($(-2,-3) +(0,0.25)$){$\dfrac{1}{1}$};
%
%
%An arrow is drawn to the next diagram.
\draw[-latex, line width=0.8pt, shorten=7.5pt] (label_for_Vertex_b) to[bend right=30] node[midway, left=1.5mm, align=center]
{Blow-up of\\vertex \textit{b}} (label_for_Farey_Fraction_at_Vertex_b);


%Here is the blow-up of the vertex labeled b-1.
\draw (-4,-6) -- (-2,-6) -- (0,-6);
\draw[fill] (-4,-6) circle (1.5pt);
\draw[fill] (-2,-6) circle (1.5pt);
\draw[fill] (0,-6) circle (1.5pt);
%
\node[anchor=north] at ($(-4,-6) +(0,-0.25)$){\textit{b}};
\node[anchor=south] at ($(-4,-6) +(0,0.25)$){$\dfrac{0}{1}$};
%
\node[anchor=north] at ($(-2,-6) +(0,-0.25)$){$b-1$};
\node[anchor=south] (label_for_Farey_Fraction_at_Vertex_b-1) at ($(-2,-6) +(0,0.25)$){$\dfrac{1}{1}$};
%
\node[anchor=north] at ($(0,-6) +(0,-0.25)$){$b-2$};
\node[anchor=south] at ($(0,-6) +(0,0.25)$){$\dfrac{2}{1}$};
%
%
\draw[-latex, line width=0.8pt, shorten=7.5pt] (label_for_Vertex_b-1) to[bend right=30] node[midway, left=1.5mm, align=center]
{Blow-up of\\vertex $b - 1$} (label_for_Farey_Fraction_at_Vertex_b-1);


%Here is the blow-up of the vertex labeled b-n.
\draw (-4,-9) -- (-2,-9) -- (0,-9) (2,-9) -- (5,-9);
\draw[fill] (-4,-9) circle (1.5pt);
\draw[fill] (-2,-9) circle (1.5pt);
\draw[fill] (0,-9) circle (1.5pt);
\node at (1,-9){$\ldots$};
\draw[fill] (2,-9) circle (1.5pt);
\draw[fill] (5,-9) circle (1.5pt);
%
\node[anchor=north] at ($(-4,-9) +(0,-0.25)$){\textit{b}};
\node[anchor=south] at ($(-4,-9) +(0,0.25)$){$\dfrac{0}{1}$};
%
\node[anchor=north] at ($(-2,-9) +(0,-0.25)$){$b-1$};
\node[anchor=south] at ($(-2,-9) +(0,0.25)$){$\dfrac{1}{1}$};
%
\node[anchor=north] at ($(0,-9) +(0,-0.25)$){$b-2$};
\node[anchor=south] at ($(0,-9) +(0,0.25)$){$\dfrac{2}{1}$};
%
\node[anchor=south, green] (label_for_phantom_Farey_Fraction_at_ellipses) at ($(1,-9) +(0,0.25)$){$\dfrac{1}{1}$};
%
\node[anchor=north] at ($(2,-9) +(0,-0.25)$){\textit{b-n}};
\node[anchor=south] at ($(2,-9) +(0,0.25)$){$\dfrac{n}{1}$};
%
\node[anchor=north] at ($(5,-9) +(0,-0.25)$){$b-(n+1)$};
\node[anchor=south] at ($(5,-9) +(0,0.25)$){$\dfrac{n+1}{1}$};
%
%
%
%
\draw[-latex, line width=0.8pt, shorten=7.5pt] (label_for_Vertex_b-2) to[bend right=30] node[midway, left=1.5mm, align=center]
{Blow-up of\\more vertices} (label_for_phantom_Farey_Fraction_at_ellipses);
%
%
%A "pin" is drawn between the midpoint of last two vertices and the label of the mediants of these vertices.
\draw[-latex, dashed, line width=0.8pt, shorten <=3mm, shorten >=1mm] ($(3.5,-9) +(60:2)$) -- (3.5,-9);
\path node[anchor=south, align=center, text width={width("future vertex")}]
at ($(3.5,-9) +(60:2)$){future mediant\\for vertex\[\dfrac{2n+1}{2}\]};
%
%A "pin" is drawn between the midpoint of the edge between the last two vertices and its label.
\coordinate (label_for_Edge) at ($(3.5,-9.5) +(0,-0.75)$);
\draw[draw=gray, line width=0.8pt, shorten <=1mm, shorten >=1mm] (3.5,-9) -- (label_for_Edge);
\node[anchor=north, align=center, inner sep=0, font=\scriptsize] at (label_for_Edge)
{$\begin{aligned} &\text{Present edge label of} \\[-1.5ex]
&\quad 2\bigl[(b-n)+(b-(n+1))\bigr] \\[-1.5ex]
&\qquad=2^{2}b-(2n+1)2
\end{aligned}$};



\draw[-latex, line width=0.8pt, shorten=7.5pt] (label_for_Vertex_b-1) to[bend right=30] node[midway, left=1.5mm, align=center]
{Blow-up of\\vertex $b - 1$} (label_for_Farey_Fraction_at_Vertex_b-1);


\draw[-latex, line width=0.8pt, shorten <=30pt, shorten >=7.5pt] (label_for_Edge.south) -- ($(label_for_Edge.south) +(0,-4)$);

%Here is the vertex placed at the broken edge.
\draw (-4,-15) -- (-2,-15) -- (0,-15) (2,-15) -- (5,-15);
\draw[fill] (-4,-15) circle (1.5pt);
\draw[fill] (-2,-15) circle (1.5pt);
\draw[fill] (0,-15) circle (1.5pt);
\node at (1,-15){$\ldots$};
\draw[fill] (2,-15) circle (1.5pt);
\draw[fill] ({(2+5)/2},-15) circle (1.5pt);
\draw[fill] (5,-15) circle (1.5pt);
%
\node[anchor=north] at ($(-4,-15) +(0,-0.25)$){\textit{b}};
\node[anchor=south] at ($(-4,-15) +(0,0.25)$){$\dfrac{0}{1}$};
%
\node[anchor=north] at ($(-2,-15) +(0,-0.25)$){$b-1$};
\node[anchor=south] at ($(-2,-15) +(0,0.25)$){$\dfrac{1}{1}$};
%
\node[anchor=north] at ($(0,-15) +(0,-0.25)$){$b-2$};
\node[anchor=south] at ($(0,-15) +(0,0.25)$){$\dfrac{2}{1}$};
%
\node[anchor=north] at ($(2,-15) +(0,-0.25)$){\textit{b-n}};
\node[anchor=south] at ($(2,-15) +(0,0.25)$){$\dfrac{n}{1}$};
%
\node[anchor=north] at ($(5,-15) +(0,-0.25)$){$b-(n+1)$};
\node[anchor=south] at ($(5,-15) +(0,0.25)$){$\dfrac{n+1}{1}$};
%
%A "pin" is drawn between the midpoint of the edge between the last two vertices and its label.
\draw[draw=gray, line width=0.8pt, shorten <=1mm, shorten >=1mm] ({(2+5)/2},-15) -- ({(2+5)/2},-16);
\node[anchor=north] at ({(2+5)/2},-16){$2^{2}b-(n+1)2$};
\node[anchor=south] at ($({(2+5)/2},-15) +(0,0.25)$){$\dfrac{2n+1}{2}$};

\end{tikzpicture}

\end{document}

Respuesta1

¿Como esto?

ingrese la descripción de la imagen aquí

Editar: MWE a continuación se basa en mi respuestasobre tu pregunta anterior. Está organizado en cinco filas, que constan de bloques de construcción (BBB), nodos dot, con la siguiente estructura: círculo negro relleno, etiqueta con el nombre encima (donde están las fracciones 0/1, 1/1, 2/1 , etc) y etiqueta con el nombre debajo (donde están los índices b, b-1, etc). Los nombres de las etiquetas permiten dibujar flechas entre BBB en filas vecinas:

 dot/.style args = {#1/#2/#3/#4}{circle, draw, fill, minimum size=3pt,
                    inner sep=0pt, outer sep=0pt, anchor=center,
                    label={[name=#1]$#2$},
                    label={[name=#3]below:$#4$},
                    node contents={},
                    on chain}, 

Los BBB definidos se conectan en cadenas en cada fila de imágenes mediante el uso de chainsla biblioteca. La distancia entre ellos está determinada por node distance=<vertical> and <horizontal>.

Además de BBB, se definen elementos auxiliares en lblcuanto a nodos de pasador, estilo de etiquetas, comillas de borde y distancia de nodo. Con este último se definen las distancias entre BBB. Con esto es sencillo cambiar las distancias entre BBB de manera consistente.

La solución propuesta con la estructura descrita permite (por supuesto, en mi opinión) un código breve, conciso y coherente para su imagen, que puede ampliarse simplemente con elementos de nuevas imágenes si es necesario.

MWE completo es:

\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{chains,           % new
                positioning,      % new
                shapes.multipart, % new
                quotes}           % new  
\makeatletter
\tikzset{% for discontinuing of chain
  off chain/.code={\def\tikz@lib@on@chain{}}%
}
\makeatother

\begin{document}
    \begin{tikzpicture}[auto,
           node distance = 22mm and 21mm,    % new
             start chain = going right,     % new
every edge quotes/.style = {auto=right, font=\footnotesize,
                            align=center},  % new
every edge/.append style = {-latex, line width=0.8pt},
      every label/.style = {inner sep= 2pt,font=\footnotesize},
         dot/.style args = {#1/#2/#3/#4}{circle, draw, fill, minimum size=3pt,
                            inner sep=0pt, outer sep=0pt, anchor=center,
                            label={[name=#1]$#2$},
                            label={[name=#3]below:$#4$},
                            node contents={},
                            on chain}, % 
         lbl/.style args = {#1/#2}{rectangle split, rectangle split parts=2,
                            font=\footnotesize, inner sep=2pt,
                            node contents={#1\nodepart{two}#2},
                            }, % new
                    ]
%%%% 1. row (is on the top of image), node name is n11
\node (n11) [dot=n11a/\frac{0}{1}/n11b/b];
%%%% 2. row, nodes names are n21, n22
\node (n21) [dot=n21a/\frac{0}{1}/n21b/b,
            below=of n11];
\node (n22) [dot=n22a/\frac{1}{1}/n22b/b-];
\draw[-latex, line width=0.8pt]
        (n11b) edge["blow up\\ of vertex $b$", bend left] (n21a);
\draw   (n21) -- (n22);
%%%% 3. row, nodes names are n31, n32, ...
\node (n31) [dot=n31a/\frac{0}{1}/n31b/b,
            below=of n21];
\node (n32) [dot=n32a/\frac{1}{1}/n32b/b-1];
\node (n33) [dot=n33a/\frac{2}{1}/n33b/b-2];
\draw   (n22b) edge["blow up\\  of vertex $b$", bend left] (n32a);
\draw   (n31) -- (n33);
%%%% 4. row, nodes names are n41, n42, ...
\node (n41) [dot=n41a/\frac{0}{1}/n41b/b,
            below=of n31];
\node (n42) [dot=n42a/\frac{1}{1}/n42b/b-1];
\node (n43) [dot=n43a/\frac{2}{1}/n43b/b-2];
\node (n44) [dot=n45a/\frac{n}{1}/n45b/b-n];
\node (n45) [dot=n46a/\frac{n+1}{1}/n46b/b-(n+1)];
\path   (n43) -- node[inner sep=0pt,
                      label={[name=n46,text=green!40!black]$\frac{3}{1}$}] {$\dots$} (n44);
\draw   (n33b) edge["blow up\\  of vertex $b$",
                    bend left] (n43a);
\draw   (n33b) edge[bend left] (n46.north);
\draw[thick]    (n41) -- (n43)   (n44) -- node (aux) {} (n45);
% "pin" above
\draw[<-, semithick, dashed]   (aux) -- ++ (6mm,9mm) 
        node[above, lbl=Future vertex of/
                        $\dfrac{2n+1}{2}$];
% "pin" below
\draw[semithick]    (aux) -- ++ (0,-9mm) 
        node (aux2) [below, lbl=Present edge label of/
                                {$\begin{gathered}
                                2\bigl[(b-n)+(b-(n+1))\bigr]\\
                                = 2^{2}b-(2n+1)2
                                \end{gathered}$}];
%%%% 5. row, nodes names are n51, n52, ...
\node (n51) [dot=n51a/\frac{0}{1}/n41b/b,
            below=of n41 |- aux2];
\node (n52) [dot=n52a/\frac{1}{1}/n52b/b-1];
\node (n53) [dot=n53a/\frac{2}{1}/n53b/b-2];
\node (n54) [dot=n54a/\frac{n}{1}/n54b/b-n];
\node (n55) [dot=n55a/\frac{n+1}{1}/n55b/b-(n+1)];
%
\path   (n53) -- node [anchor=center] {$\dots$} (n54);
\draw[thick]    (n51) --  (n53) 
                (n54) --  (n55) node (n56) [pos=0.5, off chain, 
                                      dot=n56a/\frac{2n+1}{2}/n56b/ ];
\draw[semithick]
        (aux2) -- (n56a) (n56) -- ++ (0,-9mm) node[below, lbl={$2^{2}b-(2n+1)2$/ }];
    \end{tikzpicture}
\end{document}

Tenga en cuenta que soy consciente de que la solución que propongo es bastante diferente a la suya, que utiliza hasta ahora. De todos modos, vale la pena (en mi opinión) probarlo y ver una solución alternativa, que pueda ofrecer una forma más sencilla de gestionarlo, cambios más sencillos o mantener la coherencia.

información relacionada