Как нарисовать эту картинку с помощью LaTeX? TikZ?

Как нарисовать эту картинку с помощью LaTeX? TikZ?

Я думаю, что могу справиться с LaTeX, но у меня действительно проблемы с рисованием в нем. У меня есть некоторые проблемы с TikZ. В качестве упражнения я хотел бы нарисовать следующую картинку:

пример для рисования

Может кто-нибудь подскажет, как мне нарисовать это (не обязательно с рамкой вокруг) с помощью LaTeX? В лучшем случае немного больше, чем это. Было бы очень полезно, потому что я не знаю, как это сделать.

решение1

Я бы пошел следующим путем:

  1. Определите координаты для трех точек (например (0,0), (1.5,1), и (4,2)).
  2. Для каждой координаты нарисуйте небольшой закрашенный круг и поместите под ним узел с математической формулой.
  3. Поместите окончательную формулу над последней координатой.
  4. Нарисовать кривую. Это самая сложная часть, поскольку для соединения координат с кривыми путями требуется указать либо контрольные точки (если они нарисованы как кривые Безье), либо входящий и исходящий угол кривой в каждой промежуточной координате. Я бы выбрал второе решение.

Итак, код может быть

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (1.5,1);
\coordinate (C) at (4,2);

\foreach \coor/\formula in {A/{x=\phi(0;x)},B/{y=\phi(t;x)},C/{\phi(s;x)}} {
  \fill (\coor) circle (2pt);
  \node[below right, inner xsep=-1ex] at (\coor) {$\formula$};
}
\node[above] at (C) {$\phi(t+s;x)$};
\draw (A) to[in=190] (B) to[out=10, in=220] (C);
\end{tikzpicture}
\end{document}

Обратите внимание, что углы в (B)должны быть тщательно подобраны, чтобы кривая была гладкой в ​​этой точке. Кривая входит в (B) под углом 190 градусов и выходит из него под углом 10 градусов, так что оба направления коллинеарны.

Результат

решение2

Немного другой способ сделать вещи, указав путь как кривую Безье и расположив точки в требуемые 'времена' вдоль кривой. Также quotesиспользуется библиотека (и node contentsключ), поэтому требуется последняя PGFверсия.

\documentclass[tikz,border=5]{standalone}
\usetikzlibrary{quotes}
\begin{document}
\begin{tikzpicture}[mark at/.style={shape=circle, fill, inner sep=1pt, node contents=, pos=#1}]
\draw (0,0) .. controls ++(60:2) and ++(220:2) .. (4,2)
  node [mark at=0,   "$x=\varphi(0;x)$" below]
  node [mark at=1,   "$\varphi(s;y)$"   below right,
                     "$\varphi(t+s;x)$" above]
  node [mark at=0.3, "$y=\varphi(t;x)$" below right];
\end{tikzpicture}
\end{document}

введите описание изображения здесь

решение3

Используя обычный TeX. Я старался сделать его как можно короче.

\input tikz
\tikz[dot/.style={draw,fill,circle,inner sep=1pt}]{
    \draw 
    (0,0) node[dot,label={below:$x=\phi(0;x)$}] {} .. controls ++(0.7,0.8) ..
    (1.5,1) node[dot,label={below:$y=\phi(t;x)$}] {} .. controls ++(1,0.2) ..
    (4,2) node[dot,label={below:$\phi(s;x)$},label={above:$\phi(t+s;x)$}] {};
  }
\bye

введите описание изображения здесь

решение4

С PSTricks просто для развлечения. Я использую набор некусочных функций, чтобы быть более элегантным.

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-plot,pst-eucl}

\def\x[#1]{#1}
\def\y[#1]{(#1-4)^3/30+2}

\begin{document}
\begin{pspicture}[algebraic,PointNameSep=12pt](8,4)
    \psparametricplot{1}{7}{\x[t]|\y[t]}
    \pstGeonode[
        PointName={x=\varphi(0;x),y=\varphi(t;x),\varphi(s;y)},
        PosAngle={-90,-90,-45},
    ]
        (*1 {\y[x]}){A}
        (*4 {\y[x]}){B}
        (*7 {\y[x]}){C}
    \uput{6pt}[90](C){$\varphi(t+s;x)$}
\end{pspicture}
\end{document}

введите описание изображения здесь

Связанный контент