问题
我想在我目前正在写的一篇论文中包含三个轮廓。不幸的是,我几乎没有使用 Tikz 的经验,而且截止日期很快就要到了。我真的很感激这些轮廓的简洁代码。如果可能的话,请在代码中包含以下内容:
- C 轮廓应该大小相等
- R 轮廓中的轴不太长
- 红线到 H+ 和 H- 的距离与欧米茄半圆的半径相同
- Gamma+ 定义为从 gamma+iT 到 H+ 起点的“四分之一”椭圆,其中心为 gamma+it 线,但高度为 H+(类似于 Gamma-)
请将代码中的参数写清楚,以便我可以轻松调整它们。最重要的是红线到 H+ 和 H- 的距离(这也是小圆圈的半径)。谢谢。
我的解决方案
感谢 MS-SPO 的回答,我才能够编写 Tikz 代码:
\begin{tikzpicture}[scale=0.5]
\draw[->] (-12,0) -- (12,0) node[right] {$\text{Re}$};
\draw[->] (0,-12) -- (0,12) node[above] {$\text{Im}$};
%\node at (2.2,0) {R};
%\node at (0,2.2) {I};
\newcommand\g{2}
\newcommand\T{10}
\newcommand\e{0.5}
\newcommand\Rp{1}
\newcommand\Ip{2}
\newcommand\ly{(\T-\Ip-\e)}
\coordinate (A) at (\g,\T);
\coordinate (B) at (-\T+\Rp,\Ip+\e);
\coordinate (C) at (\Rp,\Ip+\e);
\coordinate (D) at (\Rp,\Ip-\e);
\coordinate (E) at (-\T+\Rp,\Ip-\e);
\coordinate (F) at (\g,-\T);
\draw (A) -- (F) ;
\draw (B) -- (C);
\draw (D) -- (E);
\draw (\Rp,\Ip+\e) arc (90:-90:\e);
\draw (\g,\T) arc(90:180:\T cm+\Rp cm and \T cm - \Ip cm -\e cm);
\draw (\g,-\T) arc(-90:-180:\T cm +\Rp cm and \T cm + \Ip cm -\e cm);
\end{tikzpicture}
\newpage
\begin{tikzpicture}[scale=0.5]
\draw[->] (-12,0) -- (12,0) node[right] {$\text{Re}$};
\draw[->] (0,-12) -- (0,12) node[above] {$\text{Im}$};
%\node at (2.2,0) {R};
%\node at (0,2.2) {I};
\newcommand\g{2}
\newcommand\T{10}
\newcommand\e{0.5}
\newcommand\Rp{1}
\newcommand\Ip{2}
\newcommand\ly{(\T-\Ip-\e)}
\coordinate (A) at (\g,\T);
\coordinate (B) at (-\T+\Rp,\Ip+\e);
\coordinate (C) at (\Rp,\Ip+\e);
\coordinate (D) at (\Rp,\Ip-\e);
\coordinate (E) at (-\T+\Rp,\Ip-\e);
\coordinate (F) at (\g,-\T);
\draw (B) -- (C);
\draw (D) -- (E);
\draw (\Rp,\Ip+\e) arc (90:270:\e);
\draw (-\T+\Rp,\Ip+\e) arc (90:270:\e);
\end{tikzpicture}
答案1
对于像这样的一般性问题,特别是没有任何代码显示您的尝试,这里有一个类似一般性水平的答案。
我假设您已经掌握了创建tikzpicture
编译环境的技能。所有注释都发生在这个环境中。
让我们把焦点集中在路径上。
指定这 6 个坐标,例如:
\coordinate (A) at (7,8);
接下来开始画一条封闭的路径,像这样;先从线段开始看,结果是正确的:
\draw (A) -- (B) -- (C) -- (D) -- (E) -- (F) -- cycle;
在手册,包括其 4 个教程。
将从 (C) 到 (D) 的线段替换为arc
。
如果另外两个曲线路径不需要与圆匹配,请寻找[out= .., in=...]
语句来引入一些弯曲。
为了改进箭头,您可能需要看一下图书馆decoration
。
放置所有这些文本,使用\node at (..,..) {$\gamma$};
。
或多或少,就是这样。
附言:为了更灵活地创建和放置 3 幅图纸,您可以考虑将它们放入 中\pic
。简而言之,这很像宏。
答案2
\begin{tikzpicture}
% load your figure, and adjust opacity
\node[opacity=0.1](fig){\includegraphics[width=.94\textwidth]{handscript.jpeg}};
% draw coordiate system
\draw[thin, gray, step=0.2](fig.north west) grid (fig.south east);
\draw[thick](fig.north west) grid (fig.south east);
\draw[->, thick](fig.west) -- (fig.east)node[below]{$x$};
\draw[->, thick](fig.south) -- (fig.north)node[above]{$y$};
\foreach \x in {-7,...,-1,1,2,3,4,5,6,7}
{
\node[below left] at (\x, 0) {\x};
\node[below left] at (0, \x) {\x};
}
% pick points manually and connect them
\begin{scope}[line width=2pt, decoration={markings, mark=at position 0.5 with {\arrow{>}}}]
\draw[postaction={decorate}](-1.4, 7.4) to[out=175, in=45] (-6.5, 6);
\draw[postaction={decorate}](-6.5, 6) -- (-3.2, 6);
\draw(-3.2, 6) to[out=335, in=25, looseness=1.8](-3.2, 5.4);
\draw[postaction={decorate}](-3.2, 5.4) -- (-6.5, 5.4);
\draw[postaction={decorate}](-6.5, 5.4) to[out=290, in=170] (-1.4, 1.4);
\end{scope}
\draw[line width=2pt, decoration={markings, mark=between positions 0.25 and 0.75 step 0.5 with {\arrow{>}}},postaction={decorate}](-1.4, 1.4) -- (-1.4, 7.4);
% TODO
\end{tikzpicture}