摄影图

摄影图

我想要实现如您所见的摄影图:

在此处输入图片描述

我试过了,但找不到好的程序。谢谢你的帮助。

答案1

您不需要做任何特别的事情。唯一麻烦的部分是输入文本。我很可能输入了错别字,如果是这样,请原谅。

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{decorations.markings}

\begin{document}
\tikzset{->-/.style={decoration={ % https://tex.stackexchange.com/a/39282/121799
  markings,
  mark=at position #1 with {\arrow{>}}},postaction={decorate}}}

\begin{tikzpicture}[font=\sffamily]
 \draw[very thick,fill=gray] (0,-0.5) |- (0.4,0.5) |- (3,2)
 node[pos=0.75,below]{Boitier} |- (0.4,-2) |- cycle;
 \path[fill=yellow] (-1.5,0.4) -| (0.3,0.3) -- (2.8,0) -- (0.3,-0.3) |-
 (-1.5,-0.4);
 \draw[fill=cyan] (0.1,-0.5) to[bend left=10] (0.1,0.5) to[bend left=10] cycle;
 \draw[->-=.5,thick] (-1.5,0.4) node[above]{Lumi\`{e}re} -- (0.3,0.4);
 \draw[->-=.5,thick] (-1.5,-0.4) -- (0.3,-0.4);
 \draw[->-=.5,thick] (0.3,0.5) coordinate(aux1) -- (0.3,0.3) -- (2.8,0);
 \draw[->-=.5,thick] (0.3,-0.5) -- (0.3,-0.3) -- (2.8,0);
 \draw[red,dashed,thick] (2.5,0.5) coordinate (aux2) -- (2.5,-0.5);
 \draw[thick] (2.8,0.5)  -- (2.8,-0.5) coordinate (aux3);
 \draw (aux1) -- ++ (-0.2,1.6) node[above left] {Diaphragme};
 \draw (0.1,0) -- ++ (-0.3,1) node[above left] {Optique};
 \draw (aux2) -- ++ (1,0.5) node[above right] {Obturateur};
 \draw (aux3) -- ++ (0.7,-0.5) node[below right,align=left] {Film ou\\ capteur};
 \draw (0.2,-0.5) -- ++ (-0.5,-0.5) node[below left]{Objectif};
\end{tikzpicture}
\end{document} 

在此处输入图片描述

相关内容