TikZ: Wie füllt man einen durch Kreuzungen definierten Bereich?

TikZ: Wie füllt man einen durch Kreuzungen definierten Bereich?

Ich möchte dieses dreieckige Bildbeschreibung hier eingeben

Der Code lautet:

\documentclass[border=0.2cm]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
    % \draw [help lines] (7,0) grid (11,4);
    \draw [fill=red] (0,1.3) circle (1.3); 
    \draw [fill=blue] plot [smooth cycle,scale=0.4, xshift=18cm, yshift=1.5cm] coordinates
    {(1,0) (0,2) (1.3,4) (3.6,2) (3.6+3.6-1.3,4) (2*3.6,2) (3.6+3.6-1,0) (3.6,1)}; 
    \draw (8.55,0.98) -- ++ (0.1,-1.47) (8.7,0.99) -- (8.55+0.1,-0.49); 

\end{tikzpicture}
\end{document}

Ich habe nachgeschaut aufFüllbereich zwischen zwei Linien und einem Bogenaber ich konnte keine Lösung finden. Ich denke, dass ich zuerst dem blauen Objekt den Namen geben sollte name path=candy. Dann sollte ich den Befehl eingeben

\path[name path=twolines] (0.98) -- ++ (0.1,-1.47) (8.7,0.99) -- (8.55+0.1,-0.49);

um die Schnittpunkte zu finden. Danach fillsollte ich mit dem Befehl diesen Bereich füllen können. Das Problem ist, dass ich nicht weiß, wie. Vielleicht mit Hilfe von \clip, aber noch einmal, wie?

Antwort1

Zwei einfache Tricks können Ihnen eine Menge Arbeit ersparen. Zeichnen Sie das Dreieck und füllen Sie es wie üblich aus, [fill=<color>]bevor Sie die Mottenform zeichnen. Verschieben Sie das Dreieck dann ein kleines Stück nach oben, um den winzigen weißen Raum zwischen dem Bogen und der Dreiecksseite zu verbergen. Zeichnen Sie zum Schluss die kurvige Form. Das ist zwar eine Annäherung, wird Ihnen aber viel Kopfzerbrechen ersparen.

\documentclass[border=0.2cm]{standalone}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
    % \draw [help lines] (7,0) grid (11,4);
    \draw [fill=red] (0,1.3) circle (1.3);
    \draw [fill=red,yshift=1pt] (8.55,0.98) -- ++(0.1,-1.47) -- (8.7,0.99); 
    \draw [fill=blue] plot [smooth cycle,scale=0.4, xshift=18cm, yshift=1.5cm] coordinates
    {(1,0) (0,2) (1.3,4) (3.6,2) (3.6+3.6-1.3,4) (2*3.6,2) (3.6+3.6-1,0) (3.6,1)}; 
\end{tikzpicture}

\end{document}

Bildbeschreibung hier eingeben

Antwort2

Du kannst dein Dreieck oben einfach etwas zu groß zeichnen – ich verwende die shortenOption mit einer negativen Länge – und dann deine Schleife darauf platzieren, für ein perfektes Ergebnis wie dieses:

\documentclass[border=0.2cm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
   \draw [fill=red, shorten <=-0.1cm, shorten >=-0.1cm] (8.55,0.98) -- (8.65,-0.49) -- (8.7,0.99); 
   \draw [fill=blue] plot [smooth cycle,scale=0.4, xshift=18cm, yshift=1.5cm] coordinates
    {(1,0) (0,2) (1.3,4) (3.6,2) (3.6+3.6-1.3,4) (2*3.6,2) (3.6+3.6-1,0) (3.6,1)}; 
 \end{tikzpicture}
\end{document}

Gefülltes Dreieck mit Schleife

Wenn Sie aus irgendeinem Grund ein perfekt ausgefülltes Dreieck im Vordergrund benötigen, können Sie den invertierten Clip aus @Jakes Antwort mit der Schleife verwenden:https://tex.stackexchange.com/a/12033/8650

verwandte Informationen