Was bedeutet die Option „by“ in TikZ Intersections?

Was bedeutet die Option „by“ in TikZ Intersections?

Seite 65 des PGF-Handbuchs zeigt verschiedene Operationen mit der intersectionsBibliothek in TikZ. Aber ich kann den Code nicht verstehen. Was bedeutet die Option byhier?

Bildbeschreibung hier eingeben

Die gegebene Erklärung lautet:

Der Name intersections nimmt ein optionales Argument an, mit dem Sie Namen für die Koordinaten und Optionen für sie angeben können. Dadurch entsteht kompakterer Code.

Das ist nicht klar.

Antwort1

Die entsprechende Zeile lautet

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

Vergleichen Sie mit dieser einfacheren Version:

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

Hier werden die Schnittpunkte berechnet und mit C und C' bezeichnet ("NameDieÜberschneidungPunktevon D und E vondie NamenCUndC'").

Es ist eine Abkürzung für

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

für einige berechnete Koordinaten.

Das Hinzufügen des optionalen Stylings [label=above:$C$]Centspricht

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

und ermöglicht Ihnen, den Schnittpunkt direkt zu formatieren. Es wäre gleichwertig, wenn auch länger, zu schreiben

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

Antwort2

Nur der Vollständigkeit halber. Sie können die Schnittpunkte mit C-1usw. benennen, indem Sie einfach verwenden name=C. Was vielleicht auch erwähnenswert ist, ist, dass, wenn Sie die Schnittpunkte entlang einer geraden Linie sortieren möchten, dannSie müssen die gerade Linie zeichnen und so tun, als wäre sie eine Kurve.

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

Bildbeschreibung hier eingeben

Antwort3

Standardmäßig werden Kreuzungen mit (intersection-1), (intersection-2), usw. benannt.

Beim Schreiben by={a,b}werden die ersten beiden Schnittpunkte (a)und genannt (b).

Betrachten wir das Beispiel auf Seite 142, leicht abgewandelt. Es zeigt die 9 Schnittpunkte zweier Kurven. Die Gesamtzahl der Schnittpunkte ist gegeben durch total.

Durch das Schreiben von by={a,b}haben die ersten beiden Schnittpunkte jetzt zwei Namen:

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

(a)ist ein Alias ​​von (intersection-1), die anderen haben keine Aliase und bleiben zugänglich.

Bildschirmfoto

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

verwandte Informationen