goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Direktlinks:
Zuletzt aktive Beiträge
Unbeantwortete Beiträge
[Erweitert]

Forenstatistik:
Beiträge: 96251
Top-Poster: Johannes_B (5040)

Wir begrüßen unseren neuesten Benutzer Stefan_Linderer.

Links:


Mit Unterstützung von DANTE e.V.: Deutschsprachige Anwendervereinigung TeX. Danke den Mitgliedern!





Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Fläche zwischen Funktionen einfärben

 

maedsi94
Forum-Newbie
Forum-Newbie

Beiträge: 4
Anmeldedatum: 22.11.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.01.2019, 20:02     Titel: Fläche zwischen Funktionen einfärben
  Antworten mit Zitat      
Hallo zusammen,

ich will gerne die Fläche zwischen zwei Funktionen einfärben. Zum Zeichnen der Funktionen verwende ich das Paket tikz.

Ich habe bereits einige Foren durchforstet...mit mäßigem Erfolg. Mein aktueller Stand ist der folgende:

Code • Öffne in Overleaf

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{calc,intersections}


\begin{document}
   \begin{tikzpicture}[every plot/.append style={samples=50}]
      \fill[lightgray!20] plot[domain=-2:2] (\x,{(\x)^2})
      -- plot[domain=2:-2] (\x,{-(\x)^2+4});
      \draw[name path=f, green!70!black, line width=0.7pt] plot[domain=-3:3] (\x,{(\x)^2})
      node[right] {$f$};
      \draw[name path=g, red!70!black, line width=0.7pt] plot[domain=-3:3] (\x,{-(\x)^2+4})
      node[right] {$g$};
     
      %markieren der Schnittpunkte
      \fill[name intersections={of=f and g, by={A,B}}]
      (A)circle(2pt)
      (B)circle(2pt);
   \end{tikzpicture}
\end{document}
 


Dabei wird zwar die Fläche zwischen den Graphen eingefärbt, allerdings muss ich die Grenzen, in denen der Zwischenraum gefüllt wird, selbst eingeben (aktuell ist "zu viel" gefärbt). Dazu jetzt meine Frage(n):

Gibt es eine Möglichkeit die x-Koordinaten der berechneten Intersections auszulesen und in die domain einlesen zu lassen?
Gibt es eine elegantere Möglichkeit zu dem gewünschten Ergebnis zu gelangen?
Sind die Lösungen übertragbar auf andere Funktionen (zB Fläche zwischen Gerade und Parabel, etc.)?

Vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen

Bartman
Forum-Meister
Forum-Meister


Beiträge: 1531
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: ---
     Beitrag Verfasst am: 30.01.2019, 21:02     Titel:
  Antworten mit Zitat      
Für das Füllen der Fläche könntest Du die Bibliothek fillbetween von pgfplots benutzen:

Code • Öffne in Overleaf
\documentclass{standalone}
\usepackage{pgfplots}% lädt tikz

\usepgfplotslibrary{fillbetween}

\begin{document}
\begin{tikzpicture}[every plot/.append style={samples=50}]
\draw[name path=f, green!70!black, line width=0.7pt]
   plot[domain=-3:3] (\x,{(\x)^2})
   node[right] {$f$}
;
\draw[name path=g, red!70!black, line width=0.7pt]
   plot[domain=-3:3] (\x,{-(\x)^2+4})
   node[right] {$g$}
;
     
% Fläche füllen
\fill[
   lightgray!20,
   intersection segments={
      of=f and g,
      sequence={A1 -- B1
}
   }
];
\end{tikzpicture}
\end{document}
Private Nachricht senden Benutzer-Profile anzeigen

maedsi94
Forum-Newbie
Forum-Newbie

Beiträge: 4
Anmeldedatum: 22.11.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.01.2019, 22:22     Titel:
  Antworten mit Zitat      
Super, vielen Dank!

Ich habe gerade einige Funktionen ausprobiert und es funktioniert soweit auch ganz gut. Wenn ich jedoch für eine Funktion den Sinus verwende, ist ein Stück überschüssige Fläche zu sehen:

Code • Öffne in Overleaf

\documentclass{standalone}
\usepackage{pgfplots}% lädt tikz

\usepgfplotslibrary{fillbetween}

\begin{document}
\begin{tikzpicture}[every plot/.append style={samples=50}]
\draw[name path=f, green!70!black, line width=0.7pt]
plot[domain=-3:3] (\x,{(\x)^2})
node[right] {$f$}
;
\draw[name path=g, red!70!black, line width=0.7pt]
plot[domain=-3:3] (\x,{sin(\x r) +3})
node[right] {$g$}
;

% Fläche füllen
\fill[
lightgray!20,
intersection segments={
   of=f and g,
   sequence={A1 -- B1
}
}
];
\end{tikzpicture}
\end{document}
 


Dasselbe Ergebnis erhalte ich auch für eine e-Funktion (0.3*e^x +1)...
Private Nachricht senden Benutzer-Profile anzeigen

Bartman
Forum-Meister
Forum-Meister


Beiträge: 1531
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: ---
     Beitrag Verfasst am: 30.01.2019, 22:53     Titel:
  Antworten mit Zitat      
Code • Öffne in Overleaf
\documentclass{standalone}
\usepackage{pgfplots}% lädt tikz

\usepgfplotslibrary{fillbetween}

\begin{document}
\begin{tikzpicture}[every plot/.append style={samples=50}]
\pgfdeclarelayer{background layer}% siehe Kapitel 112 in pgfmanual.pdf
\pgfsetlayers{background layer,main}

\draw[name path=f, green!70!black, line width=0.7pt]
   plot[domain=-3:3] (\x,{(\x)^2})
   node[right] {$f$}
;
\draw[name path=g, red!70!black, line width=0.7pt]
   plot[domain=-3:3] (\x,{sin(\x r) +3})
%   plot[domain=-3:3] (\x,{0.3*e^\x +1})
   node[right] {$g$}
;

% Fläche füllen
\begin{pgfonlayer}{background layer}
\fill[
   lightgray!20,
   intersection segments={
      of=f and g,
      sequence={A1 -- B1[reverse
]
}% <- geändert
   }
];
\end{pgfonlayer}
\end{tikzpicture}
\end{document}


Meine Quelle
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de


  Datenschutzerklärung | Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2019 goLaTeX.de