TikZ 椭圆和圆弧操作出乎意料

TikZ 椭圆和圆弧操作出乎意料

我正在尝试绘制以原点为中心的椭圆弧。我希望它以 45 度的初始角度开始绘制并以 90 度结束。

从这个问题在这个网站上,有一条评论指出,其中一种方法是

\documentclass{article}
\usepackage{tikz}
\usepackage[dvipsnames]{xcolor}

\begin{document}

\begin{tikzpicture}
\draw[fill=ProcessBlue!30] (45:2cm and 1cm) arc [start angle = 45.0, end angle=90.0, x radius = 2cm, y radius = 1cm];
\end{tikzpicture}

\end{document}

产生

在此处输入图片描述

除非我太笨,否则这看起来实际上并不是相对于水平方向呈 45 度角的图形。该点的坐标为(r*cos(pi/4), r*sin(pi/4)),其中r是使用此方法计算的公式来自维基百科。该点在下图中用红色标出。我还从原点画了一条线,以表明该点计算正确。

在此处输入图片描述

以下是我用来制作上述内容的东西。

\documentclass{article}
\usepackage{tikz}
\usepackage[dvipsnames]{xcolor}

\begin{document}
\begin{tikzpicture}
    \draw (-4,0) -- (4,0);
    \draw (0,-4) -- (0,4);
    
    \draw[fill=blue] (45:2cm and 1cm) circle (0.05cm);
    \draw[fill=ProcessBlue!30] (45:2cm and 1cm) arc [start angle = 45.0, end angle=90.0, x radius = 2cm, y radius = 1cm];
    \draw[fill=red] (0.894427190999916, 0.894427190999916) circle (0.05cm);
    \draw[dashed] (0,0) ellipse (2cm and 1cm);
    \draw (0,0) -- (1,1);
\end{tikzpicture}

\end{document}

我的问题: 看起来该命令\draw[fill=ProcessBlue!30] (45:2cm and 1cm) arc...并没有绘制从椭圆上的点开始的圆弧,该点具有轴2cm1cm,与水平面成 45 度角(令人困惑的是,这就是人们绘制圆的方式......)。我想这是我第一次发现 TikZ 语法与我自然预期的相差如此之大。那么,它实际上在做什么(即,为什么它从蓝点开始)?有没有简单的以何种方式去做我最初打算做的事情(我强调简单,因为我想要做的事情并不是很先进)?

答案1

关于我的评论...我把所有的 45 改为 63.43,即 90-atan(1/2)。

使用 45 度角,您可以根据未拉伸的圆的 45 度角绘制圆弧。将圆拉伸为椭圆后,45 度角会变平。

总之,将 x 轴拉伸 2 倍后,单位圆上相对于 x 轴的 63.43 度将变成 45 度。

\documentclass{article}
\usepackage{tikz}
\usepackage{xcolor}

\begin{document}
\begin{tikzpicture}
    \draw (-4,0) -- (4,0);
    \draw (0,-4) -- (0,4);
    
    \draw[fill=blue] (63.43:2cm and 1cm) circle (0.05cm);
    \draw[fill=blue!30] (63.43:2cm and 1cm) arc [start angle = 63.43, end angle=90.0, x radius = 2cm, y radius = 1cm];
    \draw[fill=red] (0.894427190999916, 0.894427190999916) circle (0.05cm);
    \draw[dashed] (0,0) ellipse (2cm and 1cm);
    \draw (0,0) -- (1,1);
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

不存在不一致。这些点由 参数化(a cos(angle), b sin(angle))

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
    \draw (-4,0) -- (4,0);
    \draw (0,-4) -- (0,4);
    \draw[fill=blue] 
        (45:2cm and 1cm) arc [start angle = 45.0, 
        end angle=90.0, x radius = 2cm, y radius = 1cm];
    \draw[dashed] (0,0) ellipse[x radius=2cm,y radius=1cm];
    \path ({2*cos(45)},{1*sin(45)}) node[circle,inner sep=1pt,fill=red,
        label={[text width=4cm]above right:{I am sitting at 
        $\bigl(a\,\cos(45),b\,\sin(45)\bigr)$ with $a=2$ and $b=1$.}}]{};   
\end{tikzpicture}

\end{document}

相关内容