在论文的数学图像中绘制曲线 - 使用哪个包?

在论文的数学图像中绘制曲线 - 使用哪个包?

注意:我在数学堆栈交换上发布了这个问题,有人建议我在这里重新发布。

我通常使用 geogebra 为论文绘制图像。然而据我所知,人们可以绘制直线和弧线,但不能绘制更复杂的图像(无论如何,这需要大量的尝试和错误)。我正在尝试重新创建一个类似于下面的图像。如果有人知道可能使用哪个软件包来绘制此图像,我将不胜感激!或者任何其他建议也很好。数学 Se 帖子中有人建议使用 tikz。我以前没有单独使用过它,我正在查看教程和手册,但我仍然不知道如何使用它来制作下面显示的中间层顶点之间的不重叠曲线。

在此处输入图片描述

答案1

好的,让我给你一个关于 Ti 的非常基本的介绍Z.你应该多看看Z 手册其中包含一些非常有见地的教程。

Ti 中两个非常重要的宏Z 是\node\draw。使用\node可以将节点放置在坐标处,使用\draw可以在节点或坐标之间画线。节点通常包含一些内容,例如,节点可以包含放置在圆圈内的字母。您可以命名节点并在稍后的代码中引用这些名称。在您的示例中,节点不包含任何内容。它们只是由带有标签的小圆圈表示。

Ti 中的几乎所有内容Z 可以具有用于样式的选项。如果您需要同时将这些选项应用于多个项目,则可以使用范围。

您可以使用该label选项将标签附加到节点。该选项的值的第一部分表示标签的位置,第二部分表示标签的内容,两部分由冒号分隔。位置以节点中心的度数表示,从节点的右侧开始逆时针旋转。例如,将在节点上方label={90:Hello}打印文本。Hello

某些选项(例如bend leftbend right)可以接受值,但它们也可以不接受值。根据值的不同,线的弯曲程度不同。选项inout采用基于度的位置(类似于label选项)来表示连接线从哪里出去以及从哪里进来(到下一个节点)。选项bend leftbend rightinout弯曲线的好方法。您可以将这些选项附加到两个节点或坐标之间的边缘。

\documentclass[border=10pt]{standalone}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}

    % step 1: draw the nodes
    
    \begin{scope}[every node/.style={circle, draw, inner sep=2pt}]
    
        %     v options         v name     v coordinate  v contents (here: empty)
        \node[label={0:$v_1$}] (v1)    at (0,0)         {};
        
        \node[label={0:$v_2$}] (v2) at (2,0) {};
        \node[label={180:$v_3$}] (v3) at (4,0) {};
        
        \node[label={0:$v_{n-1}$}] (v8) at (8,0) {};
        \node[label={0:$v_{n}$}] (v9) at (10,0) {};
    
        \node[label={90:$u_{1}$}] (u1) at (5,2.5) {};    
        \node[label={270:$u_{2}$}] (u2) at (5,-2.5) {};
    
    \end{scope}
    
    % step 2: draw the lines
    
    \begin{scope}[thick]
    
        %     v options                                      v from  v to
        \draw[loosely dotted, shorten >=5pt, shorten <=5pt] (v3) -- (v8);
        
        \draw[green] (u1) to[out=180, in=90] (v1);
        \draw[green] (u2) to[out=180, in=270] (v1);

        \draw[red] (u1) to[out=0, in=90] (v9);

        \draw[red] (u1) to[bend right=20] (v1);
        \draw[red] (u1) to[bend right] (v2);
        \draw[red] (u1) to[bend right=10] (v2);
        \draw[red] (u1) to[bend left] (v3);
        \draw[red] (u1) to[bend left] (v8);

        \draw[red] (v1) to[bend left=50] (v2);
        \draw[red] (v2) to[bend left=50] (v3);
        \draw[red] (v8) to[bend left=50] (v9);

        \draw[blue] (u2) to[out=0, in=270] (v9);

        \draw[blue] (u2) to[bend left=20] (v1);
        \draw[blue] (u2) to[bend left] (v2);
        \draw[blue] (u2) to[bend left=10] (v2);
        \draw[blue] (u2) to[bend right] (v3);
        \draw[blue] (u2) to[bend right] (v8);

        \draw[blue] (v1) to[bend right=50] (v2);
        \draw[blue] (v2) to[bend right=50] (v3);
        \draw[blue] (v8) to[bend right=50] (v9);

    \end{scope}
    
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容