求教如何画花图

求教如何画花图

我正在研究一种我称之为花图的结构。基本上,它是许多可能长度不同的循环共享一个中心顶点,可以画成一朵花。例如,下图应该有 5 个具有指定长度的循环。

在此处输入图片描述

我需要这个图的不同实例,其中任何一个实例的循环数都不超过 5 个;但是,我可能需要添加三个点来表示连续性,就像图中一样。我对顶点使用的样式是

\tikzset{ myVrtxStyle/.style = {
        circle, minimum size= 4mm, %very thick, 
        draw= #1!60!black!85, 
        top color= white, bottom color= #1!70!black!60,
        font= \normalsize \ttfamily \bfseries, text= black,
    },
    myVrtxStyle/.default= gray,
    >= {Stealth[length=2.5mm]}
}

我在这方面比初学者略胜一筹tikz。对于我这个水平的我来说,从哪里开始以及如何开始设计代码来绘制这种结构有点令人生畏。任何可能对我有帮助或使我的代码更容易的想法或建议都会受到赞赏。

答案1

仅作为起点,您可以研究此代码,使用to[out=<>,in=<>]语法从中心节点到其自身绘制一条自动曲线(使用不同的锚点)。

花图

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

\begin{document}

    \begin{tikzpicture}[dot/.style={fill=black, inner sep=0pt, outer sep=0pt, minimum size=3pt,circle}]

        \node[dot,minimum size=6pt] (O) {};

        \draw (O.80) to[out=70,in=110,looseness=500] node[dot,pos=0.2](C11){} node[dot,pos=0.45](C12){} node[dot,pos=0.75](C13){} node[dot,pos=0.85](C14){}  (O.100);
        \node[fit=(O)(C11)(C12)(C13)]{$C_1$};


        \draw (O.0) to[out=0,in=40,looseness=500] node[dot,pos=0.2](C21){} node[dot,pos=0.45](C22){} node[dot,pos=0.75](C23){} node[dot,pos=0.85](C24){} node[dot,pos=0.95](C25){}  (O.20);
        \node[fit=(C21)(C24)]{$C_2$};


        \draw (O.-80) to[out=-70,in=-110,looseness=500] node[dot,pos=0.3](CI1){} node[dot,pos=0.55](CI2){} node[dot,pos=0.85](CI3){}  (O.-100);
        \node[fit=(O)(CI1)(CI2)(CI3)]{$C_i$};

        \draw (O.160) to[out=140,in=180,looseness=500] node[dot,pos=0.1](CK1){} node[dot,pos=0.4](CK2){} node[dot,pos=0.6](CK3){} node[dot,pos=0.8](CK4){} (O.180);
        \node[fit=(CK1)(CK4)]{$C_k$};
    \end{tikzpicture}
\end{document}

相关内容