用内样条线绘制圆

用内样条线绘制圆

关于如何在该图所示的圆圈内绘制样条线,有什么建议吗:

在此处输入图片描述

使用 TikZ 吗?

答案1

遗憾的是,由于圆角,箭头尖端与路径的对齐存在一些误差。本来可以直接装饰路径,但路径上的准确位置很难计算。

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings, arrows.meta}

\begin{document}

\begin{tikzpicture}[>=Stealth]

    \draw (0,0) circle (2);
    
    \foreach \r/\s in {1.6/.2, 1.2/.6} {
        \draw[rounded corners] 
            ({acos(\s/\r)}:\r) arc 
            ({acos(\s/\r)}:{-acos(\s/\r)}:\r) -- 
            cycle;
        \draw[rounded corners] 
            ({180+acos(\s/\r)}:\r) arc 
            ({180+acos(\s/\r)}:{180-acos(\s/\r)}:\r) -- 
            cycle;
    }
    
    \foreach \a/\r/\t in {
        75/2/255, 105/2/105, 75/-2/255, 105/-2/105,
        0/.2/0, 30/1.6/210, -30/1.6/150, 
        0/.6/0, 30/1.2/210, -30/1.2/150, 
        0/-.2/0, 30/-1.6/210, -30/-1.6/150, 
        0/-.6/0, 30/-1.2/210, -30/-1.2/150
    } {
        \draw[draw=none, postaction={decorate}, 
            decoration={markings, mark=at position .5 with {\arrow[rotate=\t]{>}}}] 
            ([yshift=-1pt]\a:\r) -- ([yshift=1pt]\a:\r);
    }
    
    \draw[->] (0,1.6) -- (0,2);
    \draw[->] (0,-2) -- (0,-1.6);

    \draw[-{>[open]}] (0,2.6) node[right] {$w_\infty$} -- (0,2.2);
    
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容