在 TikZ 中绘制不同大小和形状的循环

在 TikZ 中绘制不同大小和形状的循环

我正在尝试在 TikZ 中绘制具有不同外观循环的图形。

在下图中,我想让一个环变小,另一个变大。我还想能够控制环的形状或圆度。

参数“looseness”似乎没有任何作用。也许可以使用控制点? 我一直尝试手动绘制一个循环,而实际上并不使用“循环”,但当起点和终点相同时,它无法工作。

看完之后这个问题我可以同时更改两个循环的大小。答案提到,可以使用“.style”对单个循环执行此操作,但没有具体说明如何操作。(有关更多详细信息,请参阅 TikZ 文档中的一节。我查看了这里在 74.4,但没有找到任何答案。)

这是我的代码和当前输出:

\documentclass{article}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}[every loop/.style={min distance=30mm}]

    \draw[thick] (0,0) to [out=-30,in=-150, loop] (0,0) -- (0,1);

    \draw[thick] (0,1) to [out=30, in=150, loop] (0,1);

\end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

以下可以帮助您了解贝塞尔曲线的控制点:

不同大小的环

\documentclass{article}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}

    \newcommand{\dist}{3}
    \draw[thick]    (0,0) .. controls ++ (2*\dist,-\dist) and ++ (-2*\dist,-\dist) .. (0,0)
                    --
                    (0,1) .. controls ++ (\dist,\dist) and ++ (-\dist,\dist) .. (0,1);

\end{tikzpicture}
\end{document}

这里我使用了可变距离\dist来帮助您 tr 一些值,但您可以选择您需要的任何值。

知道我用来++定义控制点相对于锚点而不是绝对坐标,因为这里++不需要。

答案2

要单独修改每个循环,只需更改对象选项中的样式,如下所示:

\documentclass{article}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}[every loop/.style={min distance=30mm}]

    \draw[thick] (0,0) to [out=-20,in=-150, loop, style={min distance=12mm}] (0,0) -- (0,1);

    \draw[thick] (0,1) to [out=30, in=150, loop] (0,1);

\end{tikzpicture}
\end{document}

第一张图片

现在,对于每个环的“圆度”,我想知道两个圆是否更适合您的目标:

\documentclass{article}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}[every loop/.style={min distance=30mm}]

    \draw[thick] (0,-0.5) circle (0.5);
    \draw[thick] (0,0) -- (0,1);
    \draw[thick] (0,1.5) circle (0.5);

\end{tikzpicture}
\end{document}

第二张图片

相关内容