如何在 tikz 中填充线条和曲线之间的区域?

如何在 tikz 中填充线条和曲线之间的区域?

我浏览了各种问题,但找不到我需要的东西。我昨天开始使用 tikz,所以我很困惑,我的代码很糟糕。我正在画一个彭罗斯图。这是我现在的位置:

\begin{tikzpicture}
\node (I) at (0,2) {};
\node (II) at (2,2) {};
\node (III) at (0,4) {};
\node (IV) at (-2,2) {};
\node (V) at (0,0) {};
\node (VI) at (2,0) {};
\node (VII) at (2,-2) {};

\draw[dashed] (III.center)--node[midway, above right]{$\mathcal{CH_{R}}$}(II.center)--node[midway, above right]{$\scri^{+}$}(VII.center)--(IV.center);       
\draw (IV.center)--node[midway, above left]{$\mathcal{CH_{L}}$} (III.center);
\draw (V.center)--node[near end, above left]{$\mathcal{H_{R}}$} (II.center);

\node (VIII) at (-0.5,1.2) {$\bullet$};
\draw (VI.center) to[out=170, in=-40, looseness=1.2] node[midway, below]{$\Sigma$} (VIII.center);

\path (VIII) +(45:2.3) coordinate (IX);

\fill[gray!20,nearly transparent] (VI) -- (-0.5,1.2) -- (IX) -- (II) -- cycle;
\end{tikzpicture}

结果如下:

彭罗斯图 1

我的问题是我想让灰色区域延伸到曲线 \Sigma,但我不知道该怎么做。

另外,出于某种原因,如果我写

\fill[gray!20,nearly transparent] (VI) -- (VIII) -- (IX) -- (II) -- cycle;

代替

\fill[gray!20,nearly transparent] (VI) -- (-0.5,1.2) -- (IX) -- (II) -- cycle;

尽管 (-0.5,1.2) 是节点 (VIII) 的坐标,但我得到了不同的结果。以下是发生的情况:

彭罗斯图 2

我的主要问题是填充区域,但任何其他建议都值得赞赏。提前谢谢您。

答案1

这是一个可能的解决方案。

\documentclass{report}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
  \begin{tikzpicture}
  \coordinate (I) at (0,2);
  \coordinate(II) at (2,2);
  \coordinate(III) at (0,4);
  \coordinate(IV) at (-2,2);
  \coordinate(V) at (0,0);
  \coordinate(VI) at (2,0);
  \coordinate(VII) at (2,-2);
  \coordinate (IX) at ($(II) +(135:1.2)$);
  \coordinate (VIII) at ($(IX) +(225:2)$);
  
  \fill[fill=gray!20] (VI.center) to[out=170, in=-40, looseness=1.2] node[text=black,midway, below]{$\Sigma$} (VIII.center) -- (IX.center) -- (II.center) -- cycle;
  \draw (VI.center) to[out=170, in=-40, looseness=1.2] (VIII.center);
  
  \draw[dashed] (III.center)--node[midway, above right]{$\mathcal{CH_{R}}$}(II.center)--node[midway, above right]{$\mathcal{I}^{+}$}(VII.center)--(IV.center);
  \draw (IV.center)--node[midway, above left]{$\mathcal{CH_{L}}$} (III.center);
  \draw (V.center)--node[near end, above left]{$\mathcal{H_{R}}$} (II.center);
  
  \node at (VIII) {$\bullet$};
  \fill (IX.center) circle [radius=2pt];
  
  \end{tikzpicture}
\end{document}

在此处输入图片描述

我使用了\coordinate而不是\node,因为你只想存储点。点 IX 不在边缘:因此我首先定义这个,然后定义 VIII(但可能它不再是你想要的位置)。

相关内容