tikz:绘制参数化曲线

tikz:绘制参数化曲线

我可以按照tikz以下方式绘制一个圆圈:

\documentclass{minimal}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[x=2cm/2]
  \newcommand\rad{1}
  \pgfplothandlerlineto
  \pgfplotfunction{\x}{-1, -0.99, ..., 1}{\pgfpointxy{\x}{sqrt(\rad*\rad-\x*\x)}}
  \pgfplotfunction{\x}{-1, -0.99, ..., 1}{\pgfpointxy{\x}{-sqrt(\rad*\rad-\x*\x)}}
  \pgfusepath{stroke}
\end{tikzpicture}
\end{document}

输出为:

在此处输入图片描述

我尝试使用参数化来做同样的事情:

\begin{tikzpicture}[x=2cm/2]
  \newcommand\rad{1}
  \pgfplothandlerlineto
  \pgfplotfunction{\alpha}{0, 0.01, ..., 6.28}{\pgfpointxy{\rad *cos(\alpha)}{\rad *sin(\alpha)}}
  \pgfusepath{stroke}
\end{tikzpicture}

如何绘制参数化曲线?

答案1

\sin和函数\cos期望它们的参数以度为单位,因此如果您更改\pgfplotfunction{\alpha}{0, 0.01, ..., 6.28}...为,\pgfplotfunction{\alpha}{0,5,10,...,360}...那么一切都很好。

在此处输入图片描述

完整代码:

\documentclass{minimal}
\usepackage{tikz}
\begin{document}
  \newcommand\rad{1}% better to define outside of environment

  \begin{tikzpicture}[x=2cm/2]
    \pgfplothandlerlineto
    \pgfplotfunction{\x}{-1, -0.99, ..., 1}{\pgfpointxy{\x}{sqrt(\rad*\rad-\x*\x)}}
    \pgfplotfunction{\x}{-1, -0.99, ..., 1}{\pgfpointxy{\x}{-sqrt(\rad*\rad-\x*\x)}}
    \pgfusepath{stroke}
  \end{tikzpicture}    
  \begin{tikzpicture}[x=2cm/2]
    \pgfplothandlerlineto
    \pgfplotfunction{\x}{0,5,10,...,360}{\pgfpointxy{\rad *cos(\x)}{\rad *sin(\x)}}
    \pgfusepath{stroke}
  \end{tikzpicture}

\end{document}

我使用过\x而不是\alpha。当然,使用\alpha也可以,但它损害了我的审美感 :)

相关内容