Eine Frage zur Nicht-Null-Regel von TikZ

Eine Frage zur Nicht-Null-Regel von TikZ

Ich brauche Hilfe, wie TikZ'snonzero rulefunktioniert. Es besagt, dass es die Anzahl der Kreuzungen eines Strahls zählt, der von einigen Punkten ausgeht. Dieoffizielles Beispiel fillmit einem Dreieck und einem Kreishabe den Faden verloren, da die Schnittmenge zwischen Dreieck und Kreis nicht ausgefüllt ist.

Um dies zu verstehen, habe ich dieses Beispiel angepasst und ein zweites Beispiel mit zwei Kreisen hinzugefügt.

\begin{document}
\begin{tikzpicture}
  \filldraw[fill=yellow]
    % Clockwise isoceles right-angled triangle
    (0,0) -- (1,1) -- (2,0) --cycle
    % Small circle centered on the leftmost vertex
    (0,0) circle (.5);

  \draw[->] (0,0) -- (.3,.3);
  \draw[->] (1,1) -- (1.5,.5);
  \draw[->] (2,0) -- (1,0);
  \draw[->] (120:.5) arc (120:90:.5);
  \draw[->] (300:.5) arc (300:270:.5);

  \draw[->] (.2,.1) -- +(0,1) node[above] {crossings: $1+1 = 2$};

  \begin{scope}[yshift=-3cm]
    \filldraw[fill=yellow]
      % Two circles
      (0,0) circle (.5)
      (.5,0) circle (.5);

      \draw[->] (120:.5) arc (120:90:.5);
      \draw[->] (300:.5) arc (300:270:.5);
      \draw[->] (120:.5)+(.5,0) arc (120:90:.5);
      \draw[->] (300:.5)+(.5,0) arc (300:270:.5);
      
    \draw[->] (.2,.1) -- +(0,1) node[above] {crossings: $1+1 = 2$};
  \end{scope}
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Ich habe Schwierigkeiten, Folgendes zu verstehen:

  1. Im 1. Beispiel ist der Schnittpunktteil NICHT ausgefüllt.
  2. Im 2. Beispiel wird der Schnittpunktteil ausgefüllt.

weil die Anzahl der Überfahrten gleich ist. Können Sie bitte erklären, warum das so ist?

Antwort1

Die Zeichenrichtung der Kreise wurde korrigiert, indem sie umgekehrt wurde mit[x radius=-\r, y radius=\r]

\documentclass[tikz, border=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
\filldraw[fill=yellow]
(0,0) -- (1,1) -- (2,0) --cycle
(0,0) circle[x radius=-0.5, y radius=0.5];
\draw[->] (0,0) -- (.3,.3);
\draw[->] (1,1) -- (1.5,.5);
\draw[->] (2,0) -- (1,0);
\draw[->] (120:.5) arc (120:90:.5);
\draw[->] (300:.5) arc (300:270:.5);
\draw[->] (.2,.1) -- +(0,1) node[above] {crossings: $1+1 = 2$};
\begin{scope}[yshift=-3cm]
\filldraw[fill=yellow]
(0,0) circle[x radius=-0.5, y radius=0.5]
(.5,0) circle[x radius=-0.5, y radius=0.5];
\draw[->] (120:.5) arc (120:90:.5);
\draw[->] (300:.5) arc (300:270:.5);
\draw[->] (120:.5)+(.5,0) arc (120:90:.5);
\draw[->] (300:.5)+(.5,0) arc (300:270:.5);
\draw[->] (.2,.1) -- +(0,1) node[above] {crossings: $1+1 = 2$};
\end{scope}
\end{tikzpicture}
\end{document}

Diagramm mit ausgefüllten Kreisen und Dreiecken

verwandte Informationen