极坐标中的曲线

极坐标中的曲线

为什么直角坐标和极坐标使用不同的单位?

\begin{tikzpicture}[scale=2]
\draw[->] (-1,0) -- (1,0);
\draw[->] (0,-1) -- (0,1);
\draw node [red] at (-1,.25) {\scriptsize{Kardioida $r=5-5\sin \theta$}};
\draw[color=red,domain=0:6.28,samples=200,smooth] plot (canvas polar cs:angle=\x r,radius=      {5-5*sin(\x r)});    %r = angle en radian
\end{tikzpicture} 

答案1

当您使用 时canvas polar cs,半径将以 TeX 点为单位,并且5pt不是很大。要获取“自然”坐标中的图,请使用语法xy polar或使用隐式形式(<angle>:<radius>)。隐式形式可能有点令人困惑的是,它是 的简写两个都 canvas polar cs并且对于xy polar cs。规则是,如果您提供明确的长度,则为canvas,但如果没有提供,则为xy

因此,下面两个例子产生了正确比例的东西(我缩小了尺寸以使其适合页面):

\documentclass{article}
%\url{http://tex.stackexchange.com/q/65446/86}

\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[scale=2]
\draw[->] (-1,0) -- (1,0);
\draw[->] (0,-1) -- (0,1);
\draw node [red] at (-1,.25) {\scriptsize{Kardioida $r=5-5\sin
\theta$}};
\draw[color=red,domain=0:6.28,samples=200,smooth] plot (canvas polar
cs:angle=\x r,radius=      {5-5*sin(\x r)});    %r = angle en radian
\end{tikzpicture}

\begin{tikzpicture}[scale=2]
\draw[->] (-1,0) -- (1,0);
\draw[->] (0,-1) -- (0,1);
\draw node [red] at (-1,.25) {\scriptsize{Kardioida $r=5-5\sin
\theta$}};
\draw[color=red,domain=0:6.28,samples=200,smooth] plot (canvas polar
cs:angle=\x r,radius=      {.5cm-.5cm*sin(\x r)});    %r = angle en
radian
\end{tikzpicture}

\begin{tikzpicture}[scale=2]
\draw[->] (-1,0) -- (1,0);
\draw[->] (0,-1) -- (0,1);
\draw node [red] at (-1,.25) {\scriptsize{Kardioida $r=5-5\sin
\theta$}};
\draw[color=red,domain=0:6.28,samples=200,smooth] plot (xy polar
cs:angle=\x r,radius=      {.5-.5*sin(\x r)});    %r = angle en radian
\end{tikzpicture} 
\end{document}

答案2

在 PSTricks 中,我们可以使用\psset{runit=1.2cm,unit=\psrunit}来改变径向单位和矩形单位。在这个例子中,我将它们设置为相等。

在此处输入图片描述

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

\usepackage{pst-plot}

\psset{runit=1.2cm,unit=\psrunit}

\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=2000]{0}{TwoPi}{1.5-1.5*sin(3*x)}
\end{pspicture}
\end{document}

编辑:

动画可以帮助我们为函数选择一个好的常数。

在此处输入图片描述

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

\usepackage{pstricks-add}

\psset{runit=1cm,unit=\psrunit}

\begin{document}
\multido{\i=1+1}{10}{%
\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
\psaxes[axesstyle=polar,subticklinestyle=dashed,subticks=2,labelFontSize=\scriptstyle](3,3)
\psplot[polarplot,algebraic,linecolor=red,linewidth=2pt,plotpoints=2000]{0}{TwoPi}{1.5-1.5*sin(\i*x)}
\rput(0,-3.5){\scriptsize Kardioida \ifnum\i=1\relax$r=1.5-1.5\sin \theta$\else$r=1.5-1.5\sin(\i \theta)$\fi}
\end{pspicture}}
\end{document}

相关内容