答案1
那么,TikZ 就是这样一个工具。
代码
\documentclass[tikz]{standalone}
\usepackage{amssymb}
\usetikzlibrary{
arrows.meta, % for nice arrow tips
patterns, % for north east lines
quotes, % for "…" syntax
}
\tikzset{% placing an arrow along a path
pics/arrow/.default=>,
pics/arrow/.style={
/tikz/sloped, /tikz/allow upside down, code=\pgfarrowdraw{#1}}}
\begin{document}
\begin{tikzpicture}[
thick, x=.5cm, y=.5cm, arrows={[round]},
% OnLineTip uses specific sep to recenter itself
OnLineTip/.tip={Straight Barb[scale=.6, angle=60:2pt 3, sep=-.75pt -2]},
>={Straight Barb[scale=.6, angle=60:2pt 3]},
outer sep=.2em, % only for this
dot/.style={fill=black, circle, inner sep=+.75pt, node contents=},
]
\matrix[column sep=.5em]{
\draw[pattern=north east lines, >=OnLineTip]
(-1.5,-1) node[dot]
-| pic[near start]{arrow}
pic[near end] {arrow}
node[near start, below] {$Q$} (1.5,1)
-| pic[near start]{arrow}
pic[near end] {arrow}
node[near start, above] {$\gamma$} cycle;
&
\draw[->] (0,0) to["$\phi$", "$C^1$"'] (1,0);
&
\draw [rotate=30] ellipse[x radius=2, y radius=1.5];
\draw [pattern=north east lines, >=OnLineTip]
(-1.3,-.7) node[dot]
-- pic{arrow} (1.3, 0)
-- pic{arrow} (.8, 1.2)
-- pic{arrow} (-1.4, -.1)
-- pic{arrow} cycle;
\draw[thin] (.8,-1) -- ++ (-30:.7)
node[outer sep=auto, below right]{$U$};
&
\draw[->] (0,0) to["$f$"] (1,0);
&
\node {$\mathbb C$};
\\};
\end{tikzpicture}
\end{document}