在 Latex/Tikz 中绘制图表

在 Latex/Tikz 中绘制图表

如何在 Latex/Tikz 中绘制以下图片:在此处输入图片描述

答案1

不需要人工智能来绘制这样的东西。

两个点之间的 S

\documentclass[tikz,border=3.14mm]{standalone}

\begin{document}
    \begin{tikzpicture}[
        dot/.style={
            inner sep=0pt,
            outer sep=1pt,
            minimum width=4pt,
            circle,
            fill=black}]
        \node[dot] (1) at (0,0) {};
        \node[dot] (2) at (0,-5) {};
        \draw[thick,->] (1) .. controls ++ (3,-2) and ++ (-3,2) .. (2);
    \end{tikzpicture}
\end{document}

答案2

无论如何,还有一个替代方案元帖子

\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\begin{mplibcode}
beginfig(1);
z1 = -z2 = 30 up;
draw z1 withpen pencircle scaled 3;
draw z2 withpen pencircle scaled 3;
drawarrow z1 {dir -20} .. z2 {dir -20}
    cutbefore fullcircle scaled 7 shifted z1
    cutafter  fullcircle scaled 7 shifted z2;
endfig;
\end{mplibcode}
\end{document}

编译lualatex得到:

在此处输入图片描述

答案3

因为看起来你正在绘制一个交换图,所以解决方案是tikz-cd

\documentclass{article}
\usepackage{tikz-cd}
\tikzset{mydot/.style={% style copied from SebGlav's answer 
            inner sep=0pt,
            outer sep=1pt,
            minimum width=4pt,
            circle,
            fill=black}
            }
            
\begin{document}
\[
    \begin{tikzcd}[
        every matrix/.append style={
            nodes in empty cells, 
            nodes={mydot}
            },
        row sep=3cm,
        ]
        \ar[d,out=0,in=180]\\
    \end{tikzcd}
\]
\end{document}

在此处输入图片描述

答案4

对于那些像我一样不太了解 TikZ 的人来说,这是我从 AI 那里得到的答案:

\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[scale=2,rotate=90]   
  \draw[thick, ->, shorten <= 4pt, shorten >= 4pt] 
    (0.5,0) .. controls (0.25,-0.5) 
    and 
    (-0.25,0.5) .. (-0.5,0) 
    node[pos=0.5, above left] {$f$}; 
  \filldraw[black]
    (-0.5,0) circle (1pt) node[above] {$A$};   
  \filldraw[black] (0.5,0)
    circle (1pt) node[below] {$B$};
\end{tikzpicture}

\end{document}

从这个例子中,我们很容易看出基本弯曲箭头的工作原理,以及如何构建它们。

相关内容