임의로 생성된 그래프를 반영하는 그래프에 두 번째 선을 그립니다.

임의로 생성된 그래프를 반영하는 그래프에 두 번째 선을 그립니다.

반사 속성을 표시하는 표준 브라운 운동 프로세스의 샘플 경로를 그리는 데 문제가 있습니다. 빨간색 점선과 파란색 선이 만나는 지점에서 파란색 선을 빨간색 점선 위에 미러링하고 싶습니다. 파란색 선을 무작위로 생성하기 때문에 이를 수행하는 방법을 모르겠습니다.

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

코드는 다음 그림을 생성합니다

답변1

경로의 일부만 미러링하려면 라이브러리를 사용하는 것이 가장 쉬운 방법이라고 spath3생각 합니다.intersections

  1. 파란색 구불구불한 경로와 빨간색 점선 경로 모두에 이름을 지정하거나 저장합니다.
  2. 빨간색 점선으로 표시된 교차점의 구불구불한 경로를 분할합니다.
  3. 교차점 전에 구성 요소를 제거하십시오.
  4. 반사 변환을 사용하여 나머지 경로를 그립니다.

나는 ext.transformations.mirror내 도서관을 사용하고 있습니다.tikz-ext패키지하지만 제공된 솔루션을 자유롭게 사용해 보세요.tikz("축 대칭", "반사")로 부품을 미러링할 수 있나요?


동일한 시드를 설정하고 파란색 경로를 다시 그릴 수도 있지만 이번에는 교차점의 남은 모든 항목이 잘리도록 잘렸지만 클리핑 영역을 올바르게 선택해야 합니다.


내가 설정했다line join=round마이터와 베벨 사이에서 뒤집히지 않도록 합니다.

반사된 경로가 원래 경로 위에 있는 것을 알 수 있습니다. 이것이 원하지 않으면 그리기 순서를 변경할 수 있습니다.

암호

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

산출

여기에 이미지 설명을 입력하세요

관련 정보