Vom Pfad bis zur Achse mit Tikz-Schnittpunkten füllen

Vom Pfad bis zur Achse mit Tikz-Schnittpunkten füllen

Ich versuche, Teile eines Diagramms darzustellen, die sich von einer einfachen Kurve bis zu den Grenzen erstrecken, aber ich kann keine einfache Möglichkeit finden, den geschlossenen Pfad aus der Kreuzung zweier Pfade zu erstellen. Ich habe viel kompliziertere Beispiele gesehen, daher bin ich sicher, dass es eine einfache Möglichkeit mit Kreuzungen gibt, aber ich kann im Handbuch keine Beschreibung für etwas finden, das einfach erscheint. Das MWE ist unten, aber was ich brauche, ist die Füllung, die sich mit der Kurve verbindet. Letztendlich brauche ich 2 solcher Füllungen, die zur x-Achse verlaufen, aber ich bin zufrieden, mit 1 zu beginnen! Alle Vorschläge sind willkommen.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}
\draw [help lines] (0,0) grid (8,6);
\draw [name path=curve, very thick ] (0,4.5) to [out=-90,in=90]  (8,0);
\draw [name path=top, very thick]  (0,4.5) to (8,4.5)  to (8,3) to (0,3);
\path [name intersections = {of=curve and top}]; 
\coordinate (A) at (intersection-1);
\coordinate (B) at (intersection-2);
\fill [green] (A)--(8,4.5)--(8,3) --(B) --(A);
\end{tikzpicture}

\end{document}

Bildbeschreibung hier eingeben

Antwort1

Ist das, was Sie suchen? Hier verwende ich nur die „Clip“-Technik, um das Ziel zu erreichen. Ich habe einen Teil Ihres Codes markiert. Bilden Sie zuerst ein Clip-Rechteck

\clip (0,3) rectangle (8,4.5);

dann folgt der Kurvenbereich

\draw [fill=green,very thick ] (0,4.5) to [out=-90,in=90]  (8,0) -- (8,4.5);

Der Schnittpunkt dieser beiden Bereiche ergibt die grüne Form. Alle diese Befehle müssen in der scopeUmgebung eingeschränkt werden.

Bildbeschreibung hier eingeben

Code

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}
\draw [help lines] (0,0) grid (8,6);
%\draw [name path=curve, blue,very thick ] (0,4.5) to [out=-90,in=90]  (8,0);
%\draw [name path=top, red, very thick]  (0,4.5) to (8,4.5)  to (8,3) to (0,3);
%\path [name intersections = {of=curve and top}]; 
%\coordinate (A) at (intersection-1);
%\coordinate (B) at (intersection-2);
\begin{scope}
\clip (0,3) rectangle (8,4.5);
\draw [fill=green,very thick ] (0,4.5) to [out=-90,in=90]  (8,0) -- (8,4.5); 
\end{scope}
\draw [very thick ] (0,4.5) to [out=-90,in=90]  (8,0);
\draw [very thick]  (0,4.5) to (8,4.5)  to (8,3) to (0,3);
\end{tikzpicture}

\end{document}

Ja, das funktioniert sehr gut – danke. Das ist genau das, was ich wollte, also habe ich einfach zwei weitere Bereiche hinzugefügt, wie:

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections}

\begin{document}

\begin{tikzpicture}
\draw [help lines] (0,0) grid (8,6);
%\draw [name path=curve, blue,very thick ] (0,4.5) to [out=-90,in=90]  (8,0);
%\draw [name path=top, red, very thick]  (0,4.5) to (8,4.5)  to (8,3) to (0,3);
%\path [name intersections = {of=curve and top}]; 
%\coordinate (A) at (intersection-1);
%\coordinate (B) at (intersection-2);
\begin{scope}
\clip (0,3) rectangle (8,4.5);
\draw [fill=green,very thick ] (0,4.5) to [out=-90,in=90]  (8,0) -- (8,4.5); 
\end{scope}
\begin{scope}
\clip (0,2) rectangle (8,3);
\draw [fill=blue,very thick ] (0,4.5) to [out=-90,in=90]  (8,0) -- (8,4.5); 
\end{scope}
\begin{scope}
\clip (0,0) rectangle (8,2);
\draw [fill=red,very thick ] (0,4.5) to [out=-90,in=90]  (8,0) -- (8,4.5); 
\end{scope}
\draw [very thick ] (0,4.5) to [out=-90,in=90]  (8,0);
%\draw [very thick]  (0,4.5) to (8,4.5)  to (8,3) to (0,3);
\end{tikzpicture}

\end{document}

um dies zu erhalten:

Bildbeschreibung hier eingeben

verwandte Informationen