tikz에서 for 루프를 사용하여 반복되는 모양 그리기

tikz에서 for 루프를 사용하여 반복되는 모양 그리기

사진과 같은 렌티큘러 패턴을 만들어보려고 합니다. 반복되는 모양은 다음을 사용하여 그릴 수 있다고 생각합니다.for 루프tikz에서는 제대로 수행할 수 없었습니다.

어떤 도움을 주셔서 감사합니다루핑.

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

편집: 이것은 더 큰 다이어그램의 일부이며 아래는 코드입니다.

\begin{document}
\begin{tikzpicture}[>={Stealth[inset=0pt,length=10pt,angle'=35,round]}]

\pgfmathsetmacro{\lensRadius}{6}
\pgfmathsetmacro{\lensHeight}{3}
\pgfmathsetmacro{\startAngle}{asin(\lensHeight/\lensRadius)}

\draw []  (0,\lensHeight)
arc[start angle=180-\startAngle,delta 
angle=2*\startAngle,radius=\lensRadius]node [below, align=center] {\\ 
[1em]Main\\[-1ex]lens}
arc[start angle=-\startAngle,delta angle=2*\startAngle,radius=\lensRadius]
-- cycle;

\draw [line width=1mm ] (-1.5,3) -- (-1.5,-3) node [below, align=center] {\\ 
[1em]Weak\\[-1ex]diffuser};

\draw []  (6,\lensHeight)
arc[start angle=180-\startAngle,delta 
angle=2*\startAngle,radius=\lensRadius]node [below, align=center] {\\ 
[1em]Field\\[-1ex]lens}
-- cycle;

\draw[] plot[only marks, mark=*,mark size=10pt,mark options={fill=Sepia}] 
coordinates{(-6.5,0)} node[below, align=center]{\\[1em]Object};
\draw[] (-6,0) -- (0,3);
\draw[] (-6,0) -- (0,-3);

\draw[] (6.5,0) -- (0,3);
\draw[] (6.5,0) -- (0,-3);

%lenticular pattern
\pgfmathsetmacro{\lensRadius}{0.2}
\pgfmathsetmacro{\lensHeight}{0.2}
\pgfmathsetmacro{\startAngle}{asin(\lensHeight/\lensRadius)}
\draw []  (8,\lensHeight)
arc[start angle=180-\startAngle,delta 
angle=2*\startAngle,radius=\lensRadius]; 
\draw [line width=0.25mm ] (8,3) -- (8,-3) -- (8.2,-3) -- (8.2,3) -- cycle;

\end{tikzpicture}
\end{document}

산출:

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

답변1

다음과 같은 것을 그릴 수 있는 가능성은 많습니다. 여기에 그 중 하나가 있습니다.

\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\begin{tikzpicture}[pics/rr/.style={code={\draw (0.2,-0.2) |- ++(-0.4,0.4)
to[out=180,in=180] ++ (0,-0.4) -- cycle;}}]
 \path foreach \X in {0,1,...,10}
 {(0,0.4*\X) pic{rr}};
 \draw (0.2,-0.2) rectangle (0.4,10*0.4+0.2);
\end{tikzpicture}
\end{document}

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

관련 정보