여기에 MWE가 있습니다. 두 개의 경로를 교차하고 루프를 사용하여 모든 교차점을 반복하고 싶습니다. 교차점이 몇 개인지 미리 알지 못하며 특히 각 교차점의 이름을 지정할 필요가 없기를 바랍니다. 나는 다음과 같은 일을 할 수 있기를 원합니다 :
%\foreach \p in {\path[name intersections={of = AE and MN}];}
% \filldraw [red] (\p) circle(3pt);
가장 좋은 접근 방식은 무엇입니까?
\documentclass{standalone}
\usepackage[svgnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{calc,intersections}
\begin{document}
\begin{tikzpicture}
\coordinate (ORG) at (0.00, 0.00);
% first path (zig zag blue)
\coordinate (A) at (1.00, 3.00);
\coordinate (B) at (3.00, -3.00);
\coordinate (C) at (5.00, 3.00);
\coordinate (D) at (7.00, -3.00);
\coordinate (E) at (9.00, 3.00);
\draw[blue, line width=1.50pt, name path = AE] (ORG) -- (A) -- (B) -- (C) -- (D) -- (E);
% second path (ForestGreen)
\coordinate (M) at (0.00, 2.00);
\coordinate (N) at (10.00, 2.00);
\coordinate (U) at (10.00, -2.00);
\coordinate (V) at (0.00, -2.00);
\draw[ForestGreen, line width=1.50pt, name path = MN] (M) -- (N) -- (U) -- (V);
% first path points
\filldraw [teal] (A) circle(3pt);
\filldraw [teal] (B) circle(3pt);
\filldraw [teal] (C) circle(3pt);
\filldraw [teal] (D) circle(3pt);
\filldraw [teal] (E) circle(3pt);
% intersections of the two paths
\path [name intersections={of = AE and MN}];
\coordinate (P) at (intersection-1);
\coordinate (Q) at (intersection-2);
\coordinate (R) at (intersection-3);
\coordinate (S) at (intersection-4);
\coordinate (T) at (intersection-5);
\coordinate (W) at (intersection-6);
\coordinate (X) at (intersection-7);
\coordinate (Y) at (intersection-8);
\coordinate (Z) at (intersection-9);
% mark each intersection with a red dot
\foreach \p in {P,Q,R,S,T,W,X,Y,Z}
\filldraw [red] (\p) circle(3pt);
%\foreach \p in {\path[name intersections={of = AE and MN}];}
% \filldraw [red] (\p) circle(3pt);
\end{tikzpicture}
\end{document}
답변1
이건 어때:
\draw[name path = AE] (ORG) -- (A) -- (B) -- (C) -- (D) -- (E);
\draw[name path = MN] (M) -- (N) -- (U) -- (V);
\fill [name intersections={of=AE and MN, name=i, total=\t}] [red]
\foreach \s in {1,...,\t} {
(i-\s) circle (3pt)
};