答案1
至少它有效……
\documentclass[border=5pt,tikz]{standalone}
\usetikzlibrary{arrows,backgrounds,shapes.arrows,positioning}
\tikzset{arrownode/.style={
transform shape nonlinear=true,
shape=double arrow,
shape border rotate=180,
draw
}
}
\begin{document}
\begin{tikzpicture}[>=latex,every node/.style={font=\footnotesize}]
\draw[->] (-1.5,0) -- (1.5,0) node[above] {$x$};
\draw[->] (0,-1.5) -- (0,1.7) node[right] {$y$};
\draw[xshift=.5cm,yshift=1cm] (0,0) rectangle (2,2);
\draw[xshift=.5cm,yshift=1cm,white] (0,0) -- (0,2);
\draw[xshift=.5cm,yshift=1cm,white] (0,0) -- (2,0);
\draw[xshift=.5cm,yshift=1cm,thick] (0,2) -- (2,2);
\draw[fill=white,xshift=.5cm,yshift=1cm] (0,2) -- ([xshift=-.05cm,yshift=-.1cm]0,2) -- (1,1.8) -- ([xshift=-.05cm,yshift=-.1cm]2,2) -- (2,2);
\draw[xshift=.5cm,yshift=1cm] ([xshift=-.05cm,yshift=-.1cm]2,2) -- ([xshift=-.15cm]2,1) -- ([xshift=-.05cm,yshift=-.1cm]2,0) -- (2,0);
\draw[fill=white,xshift=.5cm,yshift=1cm] ([xshift=-.05cm,yshift=-.1cm]2,0) -- ([yshift=-.2cm]1,0) -- (0,0) -- ([xshift=-.2cm]0,1) -- ([xshift=-.05cm,yshift=-.1cm]0,2);
\draw[fill=white,xshift=.5cm,yshift=1cm] ([xshift=-.2cm]0,1) -- ([yshift=-.2cm].9,1) -- ([xshift=-.15cm]2,1);
\draw[xshift=.5cm,yshift=1cm] (1,1.8) -- ([yshift=-.2cm].9,1) -- ([yshift=-.2cm]1,0);
\draw[xshift=.5cm,yshift=1cm,fill=white] ([xshift=-.05cm,yshift=-.1cm]2,0) -- ([xshift=-.15cm]2,1) -- ([yshift=-.2cm].9,1) -- (1,-.2) -- cycle;
\draw[xshift=.5cm,yshift=1cm,fill=white] ([xshift=-.05cm,yshift=-.1cm]0,2) -- ([xshift=-.2cm]0,1) -- ([yshift=-.2cm].9,1) -- (1,1.8) -- cycle;
\draw[xshift=.5cm,yshift=1.2cm] plot [smooth cycle] coordinates {(.5,1)(.4,.5)(.8,.2)(1.2,.3)(1.5,.5)(1.4,.8)(1.2,1)(1,1.1)};
\draw[xshift=.5cm,yshift=1cm,fill=white] (2,2) -- ([xshift=-.05cm,yshift=-.1cm]2,2) -- ([xshift=-.15cm]2,1) -- ([xshift=-.05cm,yshift=-.1cm]2,0) -- (2,0) -- cycle;
\draw (-1.4,0) -- ([xshift=.5cm,yshift=1.2cm].5,1);
\draw (0,-1) -- ([xshift=.5cm,yshift=1.2cm]1.2,.3);
\draw[shorten <=-.6cm,shorten >=.23cm,dash pattern=on 5pt off 1pt on .5 off 1pt] (0,0) -- ([xshift=.55cm,yshift=1cm]1,1);
\begin{scope}[xshift=1.9cm,yshift=2.5cm]
\begin{pgfonlayer}{background}
\draw[fill=white,radius=1.3cm] (.2,.2) circle;
\draw[fill=white,radius=1.3cm] (0,0) circle;
\coordinate (a) at (1.12,1.12);
\end{pgfonlayer}
\end{scope}
\begin{scope}[shift={(3.5,3.5)}]
\foreach \x in {1,2}
\foreach \y in {1,2}
{
\draw[radius=.4cm] (\x,\y) circle;
}
\coordinate (b) at (.68,2.25);
\coordinate (c) at ([xshift=1cm].68,2.25);
\coordinate (d) at ([yshift=-1cm].68,2.25);
\coordinate (e) at ([xshift=1cm,yshift=-1cm].68,2.25);
\coordinate (c1) at (1.35,1.8);
\coordinate (c2) at ([xshift=1cm]1.35,1.8);
\coordinate (c3) at ([yshift=-1cm]1.35,1.8);
\coordinate (c4) at ([xshift=1cm,yshift=-1cm]1.35,1.8);
\draw (.5,.5) rectangle (2.5,2.5);
\draw[dashed] (a) -- (1.5,1.5) node[pos=.34,above] {$b$};
\draw[dashed] (c) -- ([xshift=-1.5cm,yshift=.25cm]a) -- (b);
\draw[dashed] (d) -- ([xshift=-1.45cm,yshift=.29cm]a) -- (e);
\draw[dashed] (c1) -- ([xshift=.25cm,yshift=-1.5cm]a) -- (c2);
\draw[dashed] (c3) -- ([xshift=.25cm,yshift=-1.5cm]a) -- (c4);
\node at (2.7,.3) {\tiny Detector};
\node at (0,2.7) {\tiny Pupils (abcd)};
\draw[->] (1.5,2) -- (3,2) node[above] {$s$};
\draw[->] (2,1.5) -- (2,3) node[right] {$t$};
\node at (.2,2.2) {$a$};
\node at (2.7,1) {$d$};
\node at (2.7,1.7) {$c$};
\end{scope}
\node[text width=1.7cm,left] at (-.5,1.3) {\tiny Large $F$/focus of the telescope};
\node[text width=3cm] (n) at (4.5,0) {\tiny Blurred image of a reference source};
\draw[->] (n) to[in=-20,out=170] ([xshift=.5cm,yshift=1.2cm]1.2,.3);
\node at (4,1.5) {Lens Relay};
\node[yscale=.5,arrownode] (node) at (-.5,3.3) {\phantom{\hspace{.7cm}}};
\node[rotate=90,yscale=.5,arrownode,above=1 of node,yshift=-.1cm] (nnode) {\phantom{\hspace{.7cm}}};
\node[above of=nnode] {\tiny Oscillating Pyramidal Prism};
\end{tikzpicture}
\end{document}
输出如下:
答案2
在我看来,用 TikZ 构建图形非常复杂。这需要很多时间;但是如果你想在不了解 TikZ 的情况下快速实现你的图片,你可以使用,特别是,
- 国际环境政策研究所http://ipe.otfried.org/;
- XFig 或 WinFig,http://winfig.com/;
- 墨景天,https://pav.iki.fi/software/textext/。 和墨景天您能以 .tex 格式导出您的图片吗?
- GraTeX 是一款适用于 LaTeX(PGF 和 TikZ)的可视化图形创建器,只需单击即可设计图形,格拉特克斯。