Biểu đồ tích phân đường viền
Aug 29 2020
Hiện tại, tôi đã có mã bên dưới (nhờ @ AndréC), nhưng tôi hy vọng sẽ bao gồm thêm một nửa hình tròn, được nhìn thấy trong hình ảnh vẽ tay. Tôi xin lỗi, tôi vẫn chưa tốt với tikz. Cảm ơn bạn! Đây là mã:
\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}
và đã hy vọng về nửa vòng tròn bổ sung được nhìn thấy ở bên trái của vòng tròn nhỏ hơn ở trung tâm:
CHỈNH SỬA: Tôi đã quản lý để thêm phần sau, phù hợp với biểu đồ đã chỉnh sửa một chút của tôi:
\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);
Tuy nhiên, làm cách nào để loại bỏ các dòng bên dưới các vòng tròn nhỏ? Tôi muốn có một hình bán nguyệt không có đáy, giống như hình trong bức tranh vẽ tay. Có cách nào để làm điều đó với mã này không?
Trả lời
3 AndréC Aug 30 2020 at 19:01
\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}