Ich habe ein Problem damit, einen Beispielpfad eines standardmäßigen Brownschen Bewegungsvorgangs zu zeichnen, der die Reflexionseigenschaft zeigt. An dem Punkt, an dem sich die rote gestrichelte Linie und die blaue Linie treffen, möchte ich die blaue Linie über die rote spiegeln. Da ich die blaue Linie zufällig generiere, habe ich keine Ahnung, wie ich das erreichen soll.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{figure}[h]
\centering
\begin{tikzpicture}
\pgfmathsetseed{952}
\draw[->] (-1,0) -- (6,0) node[right] {$t$};
\draw[->] (0,-1) -- (0,4) node[above] {$B_t$};
\draw[-, red, dashed] (0,0.75) -- (6,0.75);
\draw[blue] (0,0)
\foreach \x in {1,...,500}
{ -- ++(0.01,rand*-0.2)
}
node[right, black] {$(t,B_t)$}
\end{tikzpicture}
\end{figure}
\end{document}
Antwort1
Wenn Sie nur einen Teil des Pfads spiegeln möchten, ist meiner Meinung nach die Verwendung der Bibliotheken spath3
der intersections
einfachste Ansatz:
- Benennen/speichern Sie sowohl den blauen Wellenlinien- als auch den roten gestrichelten Pfad.
- Teilen Sie den verschnörkelten Pfad an der Kreuzung mit dem rot gestrichelten.
- Entfernen Sie das Bauteil vor der Kreuzung.
- Zeichnen Sie den verbleibenden Pfad mit der Reflexionstransformation.
Ich verwende die ext.transformations.mirror
Bibliothek meinestikz-ext
Paketaber nutzen Sie gerne alle angebotenen Lösungen, umKönnen wir ein Teil in Tikz spiegeln („Achsensymmetrie“, „Reflexion“)?
Wir könnten auch denselben Seed festlegen und den blauen Pfad erneut zeichnen, dieses Mal jedoch abgeschnitten, sodass alles links von der Kreuzung abgeschnitten wird. Der Abschneidebereich muss jedoch sorgfältig ausgewählt werden.
Ich habeline join=round
damit es nicht zwischen Gehrung und Abschrägung hin und her wechselt.
Sie werden feststellen, dass der gespiegelte Pfad über dem ursprünglichen Pfad liegt. Wenn dies nicht gewünscht ist, können wir die Zeichenreihenfolge ändern.
Code
\documentclass[tikz]{standalone}
%\documentclass{article}
%\usepackage{tikz}
\usetikzlibrary{
arrows.meta, % arrow tips
ext.transformations.mirror, % reflect over axis
intersections, % find intersection between paths
spath3} % split and transform paths
\begin{document}
\begin{tikzpicture}[line join=round]
\pgfmathsetseed{952}
\draw[->] (-1,0) -- (6,0) node[right] {$t$};
\draw[->] (0,-1) -- (0,4) node[above] {$B_t$};
\draw[spath/save=horiz, red, dashed] (0,0.75) -- (6,0.75);
\draw[blue, spath/save=squiggly] (0,0)
foreach \x in {1,...,500}{ -- ++(0.01,rand*-0.2) }
node[right, black] {$(t,B_t)$};
\draw[
draw=blue!50,
spath/.cd,
split at intersections with={squiggly}{horiz},
remove components={squiggly}{1},
use={squiggly, transform={ymirror=0.75}}
] node[anchor=base west] {$(t,B'_t)$};
\end{tikzpicture}
\end{document}