如何绘制极坐标形式 r = f(Θ) 的曲线?

如何绘制极坐标形式 r = f(Θ) 的曲线?

我们可以使用 LaTeX 来制作图表$\rho = \sec(\theta)$吗?

答案1

您可以使用pgfplots为了达成这个:

\documentclass[tikz]{standalone}

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

\begin{document}
    \begin{tikzpicture}
        \begin{polaraxis}
            \def\FREQUENCY{3}
            \addplot[red,domain=0:360,samples=360,smooth] (x,{30-8*sin(\FREQUENCY*x)});
            \addplot[dashed,domain=0:2*pi] (deg(x),30);
            \addplot[mark=*,only marks] coordinates {(0,0)};
        \end{polaraxis}
    \end{tikzpicture}
\end{document}

对于任何具有 LaTeX 经验的人来说,源代码都是不言自明的。

笔记: pgfplots默认情况下使用度数,如果要使用弧度,则需要通过deg()函数将其转换为度数。

极坐标图

并且\rho=\sec\theta(在极轴上绘制它的函数相当丑陋):

\documentclass[tikz]{standalone}

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

\begin{document}
    \begin{tikzpicture}
        \begin{polaraxis}
            \addplot[red,domain=-42:42,samples=360,smooth] (x,{sec(x)});
            \addplot[mark=*,only marks] coordinates {(0,0)};
        \end{polaraxis}
    \end{tikzpicture}
\end{document}

秒(θ)

答案2

具有相应笛卡尔坐标的极坐标:

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

\begin{document}
\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
\psaxes[axesstyle=polar,subticklinestyle=dashed,subticks=2,labelFontSize=\scriptstyle](3,0)
 \psplot[polarplot,algebraic,linecolor=red,linewidth=2pt,plotpoints=500,
      yMaxValue=3.5]{Pi neg}{Pi}{1/(cos(x))}
 \psplot[algebraic,linecolor=blue,plotpoints=5000,yMaxValue=3.5]{Pi neg}{Pi}{1/(cos(x))}
\end{pspicture}

\end{document}

在此处输入图片描述

如果您想查看计算出的点数,请使用showpoints

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

\begin{document}
\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
    \psaxes[axesstyle=polar,subticklinestyle=dashed,subticks=2,labelFontSize=\scriptstyle](3,0)
    \psplot[polarplot,algebraic,linecolor=red,linewidth=1.5pt,plotpoints=25,showpoints,
      yMaxValue=3.5]{Pi neg}{Pi}{1/(cos(x))}
\end{pspicture}

\end{document}

在此处输入图片描述

答案3

建议使用 PSTricks 的解决方案。\rho=\sec\theta表示线x=1。因此正确的曲线应该如下所示。

\documentclass[border=12pt,pstricks]{standalone}

\usepackage{pst-plot}

\psset{runit=1.2cm,unit=\psrunit}
\pstVerb{/const 2 def}

\begin{document}
\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
    \psaxes[axesstyle=polar,subticklinestyle=dashed,subticks=2,labelFontSize=\scriptstyle](3,3)
    \psplot[polarplot,algebraic=true,linecolor=red,linewidth=2pt,plotpoints=1000,yMaxValue=3.5,yMinValue=-3.5]{0}{TwoPi}{const/(cos(x))}
\end{pspicture}
\end{document}

在此处输入图片描述

答案4

我的包裹xpicture绘制极坐标曲线(或更一般的参数曲线)。

例如

% Cardioide: r = 1+cos t
\SUMfunction{\ONEfunction}{\COSfunction}{\ffunction} % Define f(t)=1 + cos t
\POLARfunction{\ffunction}{\cardioide}  % Declare \cardioide as r=f(\phi)
% \degreespolarlabels              % Uncomment to label angles in degrees

\begin{center}
  \def\runitdivisions{2}              % 2 divisions of unity in the r-axis
  \setlength{\unitlength}{1.5cm}
  \begin{Picture}(-2.5,-2.5)(2.5,2.5)
    \polargrid{2}{16}  % Draw a polar grid for 0<r<2 and 16 divisions of circle
    \pictcolor{blue}\linethickness{1pt}
    \PlotParametricFunction[20]{\cardioide}{0}{\numberTWOPI} 
                                         % Draw \cardioide for 0<\phi<2\pi
  \end{Picture}

  $\rho=1+\cos\phi$
\end{center}

心形曲线

相关内容