Seite 65 des PGF-Handbuchs zeigt verschiedene Operationen mit der intersections
Bibliothek in TikZ. Aber ich kann den Code nicht verstehen. Was bedeutet die Option by
hier?
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$]C
entspricht
\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-1
usw. 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}
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.
\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}