반사 속성을 표시하는 표준 브라운 운동 프로세스의 샘플 경로를 그리는 데 문제가 있습니다. 빨간색 점선과 파란색 선이 만나는 지점에서 파란색 선을 빨간색 점선 위에 미러링하고 싶습니다. 파란색 선을 무작위로 생성하기 때문에 이를 수행하는 방법을 모르겠습니다.
\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
- 파란색 구불구불한 경로와 빨간색 점선 경로 모두에 이름을 지정하거나 저장합니다.
- 빨간색 점선으로 표시된 교차점의 구불구불한 경로를 분할합니다.
- 교차점 전에 구성 요소를 제거하십시오.
- 반사 변환을 사용하여 나머지 경로를 그립니다.
나는 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}