Estou tendo problemas ao desenhar um caminho de amostra de um processo de movimento browniano padrão mostrando a propriedade de reflexão. No ponto onde a linha tracejada vermelha e a linha azul se encontram, gostaria de espelhar a linha azul sobre a vermelha. Como gero a linha azul aleatoriamente, não tenho ideia de como fazer isso.
\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}
Responder1
Se você quiser espelhar apenas parte do caminho, acredito que o uso das bibliotecas spath3
seja intersections
a abordagem mais fácil:
- Nomeie/salve o caminho ondulado azul e o tracejado vermelho.
- Divida o caminho ondulado na interseção com o tracejado vermelho.
- Remova o componente antes da interseção.
- Desenhe o caminho restante com a transformação de reflexão.
Estou usando a ext.transformations.mirror
biblioteca do meutikz-ext
pacotemas sinta-se à vontade para usar quaisquer soluções fornecidas paraPodemos espelhar uma parte no tikz (“simetria axial”, “reflexão”)?
Também poderíamos definir a mesma semente e desenhar o caminho azul novamente, mas desta vez recortado para que tudo o que resta da interseção seja recortado, mas a área de recorte precisa ser escolhida corretamente.
eu configureiline join=round
para que não alterne entre a esquadria e o chanfro.
Você descobrirá que o caminho refletido fica acima do caminho original. Se isso não for desejado, podemos alterar a ordem do sorteio.
Código
\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}