到目前为止,我有下面的代码(感谢@AndréC),但我希望还包含一个额外的半圆,如手绘图像中所示。对不起,我还不太擅长使用 tikz。谢谢!以下是代码:
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,decorations.markings,positioning}
\begin{document}
\begin{tikzpicture}
%configurable parameters
\def\gap{0.4}
\def\bigradius{4}
\def\littleradius{1}
%axes
\draw[line width=2pt,->](-1.5*\bigradius,0) -- (1.5*\bigradius,0)
(0,-1.5*\bigradius) -- (0,1.5*\bigradius);
\draw[line width=2pt,->] (0,0)--(45:\littleradius);
\draw[line width=2pt,->](0,0) -- (135:\bigradius); \node[above
right] at (45:\littleradius/1.5) {\large\bf{$\varepsilon$}};
\draw[line width=1pt,decoration={markings,
mark=at position 0.07 with{\arrow[line width =2pt]{>}},%{latex}},
mark=at position 0.17 with{\arrow[line width =2pt]{>}},
mark=at position 0.27 with{\arrow[line width =2pt]{>}},
mark=at position 0.35 with {\arrow[line width =2pt]{>}},%{latex}},
mark=at position 0.47 with{\arrow[line width =2pt]{>}},
mark=at position 0.53 with{\arrow[line width =2pt]{>}},%{latex}},
mark=at position 0.6 with {\arrow[line width =2pt]{>}},%{latex}},
mark=at position 0.65 with {\arrow[line width =2pt]{>}},%{latex}},
mark=at position 0.7 with{\arrow[line width =2pt]{>}},
mark=at position 0.8 with{\arrow[line width =2pt]{>}},
mark=at position 0.85 with{\arrow[line width =2pt]{>}},
mark=at position 0.955 with{\arrow[line width =2pt]{>}}},%{latex}}},
postaction={decorate}]
let
\n1={asin(\gap/2/\bigradius)},
\n2={asin(\gap/2/\littleradius)}
in (180-\n1:\bigradius) -- (-180-\n2:\littleradius)
arc(180-\n2:-180+\n2:\littleradius)--(-180+\n1:\bigradius)
arc(-180+\n1:-45:\bigradius)--(45:\bigradius)arc(45:(180-\n1):\bigradius);
\coordinate (T) at (135:2);
\node[above] at (T){$T$};
\coordinate (H) at (1.5*\bigradius,0);
\node[below] at (H){\Large\bf {x}};
\coordinate (J) at (0,1.5*\bigradius);
\node[left] at (J){$\Large\bf y$};
\coordinate (C) at (\littleradius,0);
\node[below right] at (C) {\Large\bf {C}};
\coordinate (D) at ({180-asin(\gap/2/\littleradius)}:1); \node[above left] at (D) {$ \Large\bf B$};
\coordinate (E) at ({-180+asin(\gap/2/\littleradius)}:1); \node[below left] at (E) {$\Large\bf D$};
\coordinate (F) at ({180-asin(\gap/2/\bigradius)}:\bigradius);
\node[above left] at (F) {$\Large\bf A$};
\coordinate (G) at ({-180+asin(\gap/2/\bigradius)}:\bigradius);
\node[below left] at (G) {$\Large\bf E$};
\coordinate (P) at (0,-4);
\node[below right] at (P) {$\Large\bf F$};
\coordinate(Q) at (3,-4);
\node[right] at (Q) {$\Large\bf G(\gamma-iT)$};
\coordinate (R) at (3,4);
\node[right] at (R) {$\Large\bf H(\gamma+iT)$};
\coordinate (S) at (0,4);
\node[above right] at (S) {$\Large\bf K$};
\end{tikzpicture}
\end{document}
并希望在中心较小圆圈的左侧看到额外的半圆:
编辑:我设法添加了以下内容,以适合我稍加编辑的图表:
\draw[thick, line width= 0.63pt] (-.9,.25) +(180:.3) arc (0:180:.3);
\draw[thick, line width= 0.63pt] (-.9,-.25) +(-180:.3) arc (0:-180:.3);
但是,我该如何去掉小圆圈下面的线条呢?我想要一个没有底部的半圆,就像手绘图片中那样。有什么办法可以用这段代码来实现吗?
答案1
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,decorations.markings,positioning}
\begin{document}
\begin{tikzpicture}
%configurable parameters
\def\gap{0.4}
\def\bigradius{4}
\def\littleradius{1}
\def\tinyradius{.5}%<-- new radius for the new semi-circle
%axes
\draw[line width=2pt,->](-1.5*\bigradius,0) -- (1.5*\bigradius,0)
(0,-1.5*\bigradius) -- (0,1.5*\bigradius);
\draw[line width=2pt,->] (0,0)--(45:\littleradius);
\draw[line width=2pt,->](0,0) -- (135:\bigradius); \node[above
right] at (45:\littleradius/1.5) {\large\bf{$\varepsilon$}};
\draw[line width=1pt,decoration={markings,
mark=at position 0.065 with{\arrow[line width =2pt]{>}},%{latex}},
mark=at position 0.17 with{\arrow[line width =2pt]{>}},
mark=at position 0.29 with{\arrow[line width =2pt]{>}},
mark=at position 0.35 with {\arrow[line width =2pt]{>}},%{latex}},
mark=at position 0.47 with{\arrow[line width =2pt]{>}},
mark=at position 0.53 with{\arrow[line width =2pt]{>}},%{latex}},
mark=at position 0.6 with {\arrow[line width =2pt]{>}},%{latex}},
mark=at position 0.65 with {\arrow[line width =2pt]{>}},%{latex}},
mark=at position 0.7 with{\arrow[line width =2pt]{>}},
mark=at position 0.8 with{\arrow[line width =2pt]{>}},
mark=at position 0.85 with{\arrow[line width =2pt]{>}},
mark=at position 0.955 with{\arrow[line width =2pt]{>}}},%{latex}}},
postaction={decorate}]
let
\n1={asin(\gap/2/\bigradius)},
\n2={asin(\gap/2/\littleradius)}
in (180-\n1:\bigradius) --($(180-\n1:\bigradius)!.5! (-180-\n2:\littleradius)$)arc(180:0:\tinyradius)-- (-180-\n2:\littleradius)
arc(180-\n2:-180+\n2:\littleradius)--($(-180+\n2:\littleradius)!.5!(-180+\n1:\bigradius)!2*\tinyradius cm!(-180+\n2:\littleradius)$)arc(0:-180:\tinyradius)--(-180+\n1:\bigradius)
arc(-180+\n1:-45:\bigradius)--(45:\bigradius)arc(45:(180-\n1):\bigradius);
\coordinate (T) at (135:2);
\node[above] at (T){$T$};
\coordinate (H) at (1.5*\bigradius,0);
\node[below] at (H){\Large\bf {x}};
\coordinate (J) at (0,1.5*\bigradius);
\node[left] at (J){$\Large\bf y$};
\coordinate (C) at (\littleradius,0);
\node[below right] at (C) {\Large\bf {C}};
\coordinate (D) at ({180-asin(\gap/2/\littleradius)}:1); \node[above left] at (D) {$ \Large\bf B$};
\coordinate (E) at ({-180+asin(\gap/2/\littleradius)}:1); \node[below left] at (E) {$\Large\bf D$};
\coordinate (F) at ({180-asin(\gap/2/\bigradius)}:\bigradius);
\node[above left] at (F) {$\Large\bf A$};
\coordinate (G) at ({-180+asin(\gap/2/\bigradius)}:\bigradius);
\node[below left] at (G) {$\Large\bf E$};
\coordinate (P) at (0,-4);
\node[below right] at (P) {$\Large\bf F$};
\coordinate(Q) at (3,-4);
\node[right] at (Q) {$\Large\bf G(\gamma-iT)$};
\coordinate (R) at (3,4);
\node[right] at (R) {$\Large\bf H(\gamma+iT)$};
\coordinate (S) at (0,4);
\node[above right] at (S) {$\Large\bf K$};
\end{tikzpicture}
\end{document}