使用 Tikz 制作的 n 个圆圈组成的花束

使用 Tikz 制作的 n 个圆圈组成的花束

我想画一束由 n 个圆圈组成的花束。如何在 Tikz 中绘制它?

在此处输入图片描述

我想要画的玫瑰有四个花瓣,但是有 n 个花瓣。

答案1

一些答案的启发:

\documentclass{article}

\usepackage{pgfplots}
\usepgfplotslibrary{polar}
\pgfplotsset{compat=newest}

\begin{document}

 \begin{tikzpicture}
   \begin{polaraxis}[grid=none, axis lines=none]
     \addplot[mark=none,domain=0:360,samples=300] {cos(x*3)};
   \end{polaraxis}
 \end{tikzpicture}

\end{document}

这给了我们

图片 1

感谢我的好友 percusse:

\documentclass{standalone}

\usepackage{pgfplots}
\usepgfplotslibrary{polar}
\pgfplotsset{compat=newest}

\begin{document}

 \begin{tikzpicture}
   \begin{polaraxis}
     \addplot[mark=none,domain=0:360,samples=300] {cos(5*x)};
   \end{polaraxis}
 \end{tikzpicture}

\end{document}

图片 2

值得注意的是,秘密在于

cos(n*x)

n您想要的花瓣数是多少。但请注意,当n为奇数时,您将得到n花瓣,2n当 为偶数时,您将得到花瓣n。如果有人可以改进代码,那就太好了。:)

更新:tohecz 为我提供了一个替代图,这肯定对我们有帮助。虽然他声称这不是一条平滑的曲线,但对我来说已经足够好了。:)

让我们替换

cos(n*x)

经过

abs(cos(n*x/2))

瞧!

\documentclass{article}

\usepackage{pgfplots}
\usepgfplotslibrary{polar}
\pgfplotsset{compat=newest}

\begin{document}

 \begin{tikzpicture}
   \begin{polaraxis}[grid=none, axis lines=none]
     \addplot[mark=none,domain=0:360,samples=300] { abs(cos(6*x/2))};
   \end{polaraxis}
 \end{tikzpicture}

\end{document}

我们有:

图片 3

耶!:)

答案2

PSTricks 中有 4 个选项。

r = f(Θ)在代数中

径向距离是代数形式的角度函数。

\begin{pspicture}(-1,-1)(1,1)
    \psplot[algebraic,polarplot,linecolor=red]{0}{TwoPi}{cos(3*x)}
\end{pspicture}

x = f(t)y = g(t)代数中

x都是代数形式y的函数。t

\begin{pspicture}(-1,-1)(1,1)
    \psparametricplot[algebraic,linecolor=green]{0}{TwoPi}{cos(3*t)*cos(t)|cos(3*t)*sin(t)}
\end{pspicture}

r = f(Θ)在 RPN 中

径向距离是 RPN 形式的角度函数。

\begin{pspicture}(-1,-1)(1,1)
    \psplot[polarplot,linecolor=blue]{0}{TwoPi RadtoDeg}{3 x mul cos}
\end{pspicture}

x = f(t)y = g(t)在 RPN 中

x都是RPN形式y的函数。t

\begin{pspicture}(-1,-1)(1,1)
    \psparametricplot[linecolor=orange]{0}{TwoPi RadtoDeg}{3 t mul cos t PtoC}
\end{pspicture}

完整代码

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

\def\Label#1{\uput[90](0,1){\tiny$n=#1$}}

\def\Draw#1{%
% r = f(Θ) in algebraic
\begin{pspicture}(-1,-1)(1,1)
    \psplot[algebraic,polarplot,linecolor=red]{0}{TwoPi}{cos(#1*x)}
    \Label{#1}
\end{pspicture}
% x = f(t) and y = g(t), both are in algebraic
\begin{pspicture}(-1,-1)(1,1)
    \psparametricplot[algebraic,linecolor=green]{0}{TwoPi}{cos(#1*t)*cos(t)|cos(#1*t)*sin(t)}
    \Label{#1}
\end{pspicture}
% r = f(Θ) in RPN
\begin{pspicture}(-1,-1)(1,1)
    \psplot[polarplot,linecolor=blue]{0}{TwoPi RadtoDeg}{#1 x mul cos}
    \Label{#1}
\end{pspicture}
% x = f(t) and y = g(t), both are in RPN
\begin{pspicture}(-1,-1)(1,1)
    \psparametricplot[linecolor=orange]{0}{TwoPi RadtoDeg}{#1 t mul cos t PtoC}
    \Label{#1}
\end{pspicture}}

\begin{document}
\multido{\i=1+1}{5}{\Draw{\i}}
\end{document}

在此处输入图片描述

相关内容