¿Cuál es el significado de la opción 'por' en TikZ Intersecciones?

¿Cuál es el significado de la opción 'por' en TikZ Intersecciones?

La página 65 del Manual de PGF, muestra diferentes operaciones con la intersectionsbiblioteca en TikZ. Pero no puedo entender el código. ¿Cuál es el significado de la opción byaquí?

ingrese la descripción de la imagen aquí

La explicación dada es:

El nombre de las intersecciones toma un argumento opcional by, que le permite especificar nombres para las coordenadas y opciones para ellas. Esto crea un código más compacto.

Esto no está claro.

Respuesta1

La línea relevante es

\path [name intersections={of=D and E, by={[label=above:$C$]C, [label=below:$C’$]C’}}];

Compare con esta versión más simple:

\path [name intersections={of=D and E, by={C, C’}}];

Aquí los puntos de intersección se calculan y se denominan C y C' ("nombreelintersecciónpuntosde D y E porlos nombresCyC'").

Es un atajo para

\coordinate (C) at ...;
\coordinate (C') at ...;

para algunas coordenadas calculadas.

Agregar el estilo opcional [label=above:$C$]Cequivale a

\coordinate[label=above:$C$] (C) at ...;

y le permite diseñar el punto de intersección directamente. Sería equivalente, aunque más largo, escribir

\path [name intersections={of=D and E, by={C, C’}}];
\node[above] at (C) {$C$};
\node[below] at (C') {$C'$};

Respuesta2

Sólo para completar. Puedes nombrar las intersecciones por C-1etc. simplemente usando name=C. Lo que quizás también valga la pena señalar es que, si desea ordenar las intersecciones a lo largo de una línea recta, entoncesTienes que dibujar la línea recta como si fuera una curva..

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}
    \draw[name path=grid] [xstep=3,ystep=2] (9,8) grid (0,0);
    \draw[->, name path=line] (2,1) to[bend left=0] (7,7);
    \draw[name intersections={of=grid and line, sort by=line, name=C, total=\t}]
        \foreach \s in {1,...,\t}{(C-\s) node {\s}};
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta3

De forma predeterminada, las intersecciones se denominan (intersection-1), (intersection-2), etc.

Cuando escribas by={a,b}las dos primeras intersecciones se llamarán (a)y (b).

Veamos el ejemplo de la página 142, ligeramente modificado. Muestra las 9 intersecciones de dos curvas. El número total de intersecciones está dado por total.

Al escribir by={a,b}, las primeras 2 intersecciones ahora tienen dos nombres:

  • (a)o(intersection-1)
  • (b)o(intersection-2)

(a)es un alias de (intersection-1), los demás no tienen alias y siguen siendo accesibles.

captura de pantalla

\documentclass[border=5mm,tikz]{standalone}

\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}
\clip (-2,-2) rectangle (2,2);
\draw [name path=curve 1] (-2,-1) .. controls (8,-1) and (-8,1) .. (2,1);
\draw [name path=curve 2] (-1,-2) .. controls (-1,8) and (1,-8) .. (1,2);
\fill [name intersections={of=curve 1 and curve 2, by={a,b}, total=\t}]
[red, opacity=0.5, every node/.style={above left, black, opacity=1}]
\foreach \s in {1,...,\t}{(intersection-\s) circle (2pt) node {\footnotesize\s}};
\draw[fill=blue!50,opacity=.5] (a) circle (4pt);
\end{tikzpicture}
\end{document}

información relacionada