如何定位由下面三条线生成的双色椭圆?

如何定位由下面三条线生成的双色椭圆?

这是我的代码:

\begin{tikzpicture} [thick,x=1mm,y=1mm]
    \draw (0:0) ellipse (10mm and 20mm);
    \draw[fill=red] (0:0) -- (0:10 and 20) arc (0:180:10 and 20) -- cycle;
    \draw[fill=blue] (0:0) -- (0:10 and 20) arc (0:-180:10 and 20) -- cycle;
\end{tikzpicture}

这将生成一个椭圆,其上部为红色,下部为蓝色。

问题:如何用坐标 (x,y) 定位这个椭圆?

答案1

\documentclass[tikz, border=1cm]{standalone}
\begin{document}
\begin{tikzpicture}[thick]
\draw[fill=red] (3,2) -- +(0:1) arc[start angle=0, end angle=180, x radius=1, y radius=2] -- cycle;
\draw[fill=blue] (3,2) -- +(0:1) arc[start angle=0, end angle=-180, x radius=1, y radius=2] -- cycle;
\draw[orange,->] (0,0)node[above]{(0,0)} -- (3,2)node[above]{(3,2)};
\end{tikzpicture}
\end{document}

红色和蓝色椭圆和箭头

答案2

您的椭圆以点(0:0)=为中心(0,0),即当前坐标系的原点。

您可以将此坐标更改为其他坐标,或者移动坐标系:

\begin{tikzpicture} [thick,x=1mm,y=1mm]
  \begin{scope}[shift={(x,y)}]% ← Use any coordinate you want here.
    \draw (0:0) ellipse (10mm and 20mm);
    \draw[fill=red] (0:0) -- (0:10 and 20) arc (0:180:10 and 20) -- cycle;
    \draw[fill=blue] (0:0) -- (0:10 and 20) arc (0:-180:10 and 20) -- cycle;
  \end{scope}
  % The following dot will not be at the center of the ellipse:
  \fill (0,0) circle[radius=2pt];
\end{tikzpicture}

如果您需要在文档中多次放置此椭圆,您可以将其全部打包到自定义宏或 TikZ 图片中,具体取决于您的目标。

这是一个简单的实现,带有一张图片,可让您设置椭圆的中心。

\draw我已将之后的\fill(不再绘制)移动,以便椭圆的边框不会被任何填充覆盖。

我也只使用一个坐标系(canvas带有单位)并且不要将其与xy坐标系(将给定值与x/y长度相乘)混合。

代码

\documentclass[tikz,convert]{standalone}
\tikzset{
  my ellipse/.pic={
    \tikzset{start angle=0, x radius=10mm, y radius=20mm}
    \fill[red]  (0:0) -- (0:10mm and 20mm) arc [delta angle= 180] -- cycle;
    \fill[blue] (0:0) -- (0:10mm and 20mm) arc [delta angle=-180] -- cycle;
    \draw (0:0) ellipse[];
  }
}
\begin{document}
\begin{tikzpicture}
\draw[help lines] (-3.5,-1.5) grid (2.5,4.5);
\pic at (1,2)  {my ellipse};
\pic at (-2,1) {my ellipse};
\fill (0,0) circle[radius=2pt];
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

相关内容