有人能告诉我我做错了什么吗?我只想使用 tikz 包。我的思维过程是;
r^2=x^2+y^2
因此r=sqrt(x^2+y^2)
使用x=(a/2)+bcos(theta)+(a/2)cos(2theta)
和y=bsin(theta)+(a/2)sin(2theta)
当 时r=a+bcos(theta)
,我们得到
r=sqrt(((0.25)+2cos(theta)+(0.25)cos(2theta))^2+((2sin(theta)+0.25sin(sin(2theta))^2)
。因此重新排列 theta 我们得到theta=acos(r-0.5)*0.5
。我的代码如下:
\documentclass{article}
\input{header}
\usepackage{tikz}
\begin{document}
\begin{figure}[h!]
\centering
\begin{tikzpicture}[xscale=1.3, yscale=5, domain=-2*pi:2*pi]
\draw[->] (-0.2,0) -- (1.7,0)
node[below]{$x$};
\draw[->] (0,-1) -- (0,1)
node[left]{$F(x)$};
\draw[color=blue,smooth]
plot(\x,{0.5*acos({{sqrt((0.25+2*cos(\x r) + 0.25*cos(2*\x r))^2+(2*sin(\x r) +0.25*sin(2*\x r))^2)-0.5}})})
node[below]{$\cos$};
\end{tikzpicture}
\caption{Lim}
\label{fig:Lim}
\end{figure}
\end{document}
但它总是出错。我不想使用 cspolar 或任何其他包。
答案1
通过尝试转换为矩形,您将遇到域错误。您可以将方便的pgfplots
与结合使用tikz
,轻松获得所需的结果:
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{polar}
\begin{document}
\begin{tikzpicture}
\begin{polaraxis}
\addplot+[black, very thick, mark=none, domain=0:720, samples=600 ] {0.5+2*cos(x)};
\end{polaraxis}
\draw (3.43cm,-.45cm) node [below] {$\frac12+2\cos(\theta)$};
\end{tikzpicture}
\end{document}
答案2
只是为了好玩:一个简短的代码pst-plot
:
\documentclass[11pt, a4paper, pdf, svgnames]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage{pst-plot}
\begin{document}
\psset{unit=2.5cm, arrowinset=0.15, ticksize=2.5pt -2.5pt, labelFontSize=\footnotesize, tickwidth =0.6pt}
\begin{pspicture}(-1.5,-1.9)(3.9,1.9)
\psaxes[arrows=->, linecolor=LightSteelBlue, tickcolor=LightSteelBlue](0,0)(-1.6,-1.9)(3.6,1.9)[$x$,-110][$y$,-140]
\psset{linewidth=1.2pt, plotpoints=200, plotstyle=curve, polarplot, algebraic, labelsep=0.5em}
\psplot[linecolor =IndianRed ]{0}{TwoPi}{0.5 + 2*cos(x)}
\end{pspicture}
\end{document}