Pgfplot,周长未达到 x 轴

Pgfplot,周长未达到 x 轴

TikZ当用和绘制圆周(的四分之一)时pgfplot,它不接触x = 0水平线:

在此处输入图片描述

这可能是由于绘图的水平分辨率有限,在本例中使用8000点。点数的增加会减慢最终的创建速度pdf,并且无论如何也不会让曲线达到x = 0。这是原始代码:

\documentclass[border=2mm,tikz]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
    domain=0:2*pi,samples=8000,grid=major,
    width=15cm,
    \addplot [color=red] {sqrt(1.1 - x^2)};

\end{axis}
\end{tikzpicture}

\end{document}

是否有可能绘制一个完全的圆周的四分之一,让它明确地从轴yx轴,而不管值是多少samples?是否有任何指令可以与TikZand/or一起使用以实现此目的pgfplot

答案1

\documentclass[border=2mm,tikz]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}

\begin{tikzpicture}
\begin{axis}[
    domain=0:2*pi,samples=100,grid=major,
    width=15cm,]
    \addplot[color=red, trig format plots=rad, domain=0:0.5*pi] ({sqrt(1.1) * cos(x)}, {sqrt(1.1) * sin(x)});
\end{axis}
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

问题中的域已经从角度开始,但公式使用以下公式:

= 平方根(r2 -X2

有 50 个样本和标记点:

\documentclass[border=2mm,tikz]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    domain=0:2*pi,
    samples=50,
    grid=major,
    width=15cm,
]
    \addplot+[color=red] {sqrt(1.1 - x^2)};

\end{axis}
\end{tikzpicture}
\end{document}

前

发现:

  • 域太大(0 到 2π≈6.28)。上边界低于 1.1,正好是 sqrt(1.1)。

  • 如果域由有理数给出,理论上最右边的点永远不可能被击中。至少,域应该在那里结束,才能得到 x 轴上的点。

更改:

domain=0:sqrt(1.1),

具有固定域的结果

但是,为了得到平滑的右侧,需要大量的点,因为这些点在曲线上分布不均匀。这可以通过在极坐标中指定点来解决。还smooth添加了 以便能够进一步减少样本数量。

\documentclass[border=2mm,tikz]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    domain=0:90,
    samples=10,
    grid=major,
    width=15cm,
]
    \pgfmathsetmacro{\radius}{sqrt(1.1)}
    \addplot+[color=red, smooth] ({\radius*cos(x)}, {\radius*sin(x)});
\end{axis}
\end{tikzpicture}
\end{document}

极坐标结果

相关内容