Fläche zw. Schnittpunkten markieren Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


Sammy93
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Do 25. Jun 2020, 10:27

Fläche zw. Schnittpunkten markieren

Beitrag von Sammy93 »

Hallo zusammen,

nachdem ich jetzt nach langer Recherche und Ausprobieren nicht weiterkomme, hoffe ich, dass mir hier jemand helfen kann.

Ich möchte die Fläche zw. den 4 roten Schnittpunkten markieren. Ich habe auch einen Ansatz, aber komme nun nicht mehr weiter, da am Ende immer die falschen Flächen markiert sind.
Mein Minimalbeispiel:

\documentclass[preview]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}
\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}
\tikzstyle{every node}=[font=\small]
\begin{axis}[
width=5cm,height=5cm,
axis lines=middle,
domain=-3:3,
smooth,
xmin=-3,xmax=3,
tick style=black,
xtick={\empty},
xlabel=$x$,
xlabel style={below, anchor=north east,inner xsep=0pt},
restrict y to domain=0:3,
ymin=0,ymax=3,
ytick={\empty},ylabel=$y$,
ylabel style={above,anchor=north east,inner ysep=0pt},
samples=100,
]
\draw [name path =x](axis cs: 0, 0) circle [radius=200]; 
\addplot[line width=1pt, smooth, name path = y ]{-x+1}; 
\addplot[line width=1pt, smooth, name path =z]{2*x^2}; 
\addplot [red, no markers, name path =Y] coordinates {(0,1) (0,2)}; % rotmarkierter Teil der y-Achse

%Schnittpunkte berechnen
\fill [red,  name intersections={of=x and z}]
(intersection-1) circle (1pt);
\fill [red,  name intersections={of=y and z}]
(intersection-2) circle (1pt);
\fill [red,  name intersections={of=x and Y}]
(intersection-1) circle (1pt);
\fill [red,  name intersections={of=y and Y}]
(intersection-1) circle (1pt);
}];
% Ab hier wollte ich eigentlich mit folgendem Code arbeiten, aber da habe ich wohl einen Fehler. 
\path [draw,green, fill, 
name path=xz,
intersection segments={
	of=x and z}}];
\end{axis}
\end{tikzpicture}
\end{document}

Gast

Beitrag von Gast »

\tikzstyle ist veraltet.

}]; nach dem Zeichnen des letzten Schnittpunktes und die zweite geschweifte Klammer am Ende von intersection segments führen zu Fehlermeldungen.

Wenn du compat setzt, geht auch

\draw [name path =x] (0,0) circle [radius=2];

Sammy93
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Do 25. Jun 2020, 10:27

Re: Fläche zw. Schnittpunkten markieren

Beitrag von Sammy93 »

Ok, das werde ich verbessern.
Aber wie bekomme ich die richtige Fläche (zw. den 4 roten Schnittpunkten) markiert? Ich bekomme nur die falsche Fläche hin.


esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Re: Fläche zw. Schnittpunkten markieren

Beitrag von esdd »

Wie kann ich die Fläche zwischen mehreren Pfaden füllen? angewendet auf Dein Beispiel:

\documentclass[preview]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}% <- wichtig!
\usepgfplotslibrary{fillbetween}
\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}[every node={font=\small}]% <- Syntax geändert
\begin{axis}[
  set layers,% <- eingefügt
  width=5cm,height=5cm,
  axis lines=middle,
  axis equal image,% <- eingefügt
  domain=-3:3,
  smooth,
  xmin=-3,xmax=3,
  tick style=black,
  xtick={\empty},
  xlabel=$x$,
  xlabel style={below, anchor=north east,inner xsep=0pt},
  restrict y to domain=0:3,
  ymin=0,ymax=3,
  ytick={\empty},ylabel=$y$,
  ylabel style={above,anchor=north east,inner ysep=0pt},
  samples=100
]
\draw [name path =x](0, 0) circle [radius=2]; % <- geändert
\addplot[line width=1pt, smooth, name path = y ]{-x+1}; 
\addplot[line width=1pt, smooth, name path =z]{2*x^2}; 
\addplot [red, no markers, name path =Y] coordinates {(0,1) (0,2)}; % rotmarkierter Teil der y-Achse

%Schnittpunkte berechnen
\fill [red,  name intersections={of=x and z}]
  (intersection-1) circle [radius=1pt];% <- Syntax geändert
\fill [red,  name intersections={of=y and z}]
  (intersection-2) circle [radius=1pt];% <- Syntax geändert
\fill [red,  name intersections={of=x and Y}]
  (intersection-1) circle [radius=1pt];% <- Syntax geändert
\fill [red,  name intersections={of=y and Y}]
(intersection-1) circle [radius=1pt];% <- Syntax geändert

% Füllung
\path [name path=xz,% draw=green,
  intersection segments={of=x and z, sequence={L2 -- R2}}];
\path [name path=yY,% draw=blue,
  intersection segments={of=y and Y, sequence={L2 -- R2}}];
\pgfonlayer{axis background}
  \path [fill=green,
    intersection segments={of=xz and yY, sequence={L0 -- L1 -- R0 -- R1}}];
\endpgfonlayer

\end{axis}
\end{tikzpicture}
\end{document}
gl_fuellung.png

Sammy93
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Do 25. Jun 2020, 10:27

Re: Fläche zw. Schnittpunkten markieren

Beitrag von Sammy93 »

Wow, super! Herzlichen Dank für die Hilfe. Mir war irgendwie nicht klar, wie ich die Sequence mit L1, R1 etc. einteile.


Antworten