使用范围内的命名路径来表示范围外的交点?

使用范围内的命名路径来表示范围外的交点?

我需要:

  1. 画一个椭圆,
  2. 给它命名,以便我稍后可以与它相交,
  3. 剪辑它。

为了完成 3,使用 似乎最合适scope,但这意味着我无法完成 2。考虑这个 MWE:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}
  \draw[->] (-2.0, 0.0) -- (2.0,0.0);
  \draw[->,name path=yaxis] ( 0.0,-2.0) -- (0.0,2.0);
  \draw[name path=ellipse] (-1.0,0.0) ellipse (1.5 and 0.6);
  \path[name intersections={of=ellipse and yaxis,by=x}];
  \draw[red,fill=red] (x) circle (1pt);
\end{tikzpicture}
\end{document} 

这使

在此处输入图片描述

其中红色圆圈表示交点。这实现了 1 和 2,但没有实现 3,为此我需要类似

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}
  \draw[->] (-2.0, 0.0) -- (2.0,0.0);
  \draw[->,name path=yaxis] ( 0.0,-2.0) -- (0.0,2.0);
  \begin{scope}
    \clip (-2.0,-2.0) rectangle (2.0,2.0);
    \draw[name path=ellipse] (-1.0,0.0) ellipse (1.5 and 0.6);
  \end{scope}
\end{tikzpicture}
\end{document}

给予

在此处输入图片描述

但由于范围的原因,我无法参考路径确定交点并将其绘制为红色圆圈。

那么,什么是剪裁椭圆但仍能用其确定交点的最佳方法?有没有办法在scope全局范围内创建一些“属性”?

答案1

您在寻找吗name path global

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}
  \draw[->] (-2.0, 0.0) -- (2.0,0.0);
  \draw[->,name path=yaxis] ( 0.0,-2.0) -- (0.0,2.0);
  \begin{scope}
    \clip (-2.0,-2.0) rectangle (2.0,2.0);
    \draw[name path global=ellipse] (-1.0,0.0) ellipse (1.5 and 0.6);
  \end{scope}
  \draw[name intersections={of=ellipse and yaxis,by=x},red,fill=red] (x) circle (1pt);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容