Dibuja una segunda línea en un gráfico que sea un reflejo de uno generado aleatoriamente.

Dibuja una segunda línea en un gráfico que sea un reflejo de uno generado aleatoriamente.

Tengo problemas para dibujar una ruta de muestra de un proceso de movimiento browniano estándar que muestre la propiedad de reflexión. En el punto donde se unen la línea discontinua roja y la línea azul, me gustaría reflejar la línea azul sobre la roja. Como genero la línea azul al azar, no tengo idea de cómo lograrlo.

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

el código genera la siguiente imagen

Respuesta1

Si desea reflejar solo una parte de la ruta, creo que el uso de las bibliotecas spath3es intersectionsel enfoque más sencillo:

  1. Nombra/guarda el trazado ondulado azul y el trazado punteado rojo.
  2. Divide el camino ondulado en la intersección con el trazado rojo discontinuo.
  3. Retire el componente antes de la intersección.
  4. Dibuja el camino restante con la transformación de reflexión.

Estoy usando la ext.transformations.mirrorbiblioteca de mitikz-extpaquetepero siéntase libre de utilizar cualquier solución proporcionada para¿Podemos reflejar una parte en tikz ("simetría axial", "reflexión")?


También podríamos establecer la misma semilla y dibujar el camino azul nuevamente, pero esta vez recortado de modo que todo lo que queda de la intersección quede recortado, pero el área de recorte debe elegirse correctamente.


he puestoline join=roundpara que no cambie entre inglete y bisel.

Verá que el camino reflejado se encuentra encima del camino original. Si esto no se desea podemos cambiar el orden del dibujo.

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}

Producción

ingrese la descripción de la imagen aquí

información relacionada