Ich habe Funktionen mit TikZ gezeichnet, die sich schneiden. In den Schnittpunkten möchte ich jeweils einen dicken Punkt setzten, damit man diese besser erkennt. Neben den Schnittpunkt soll dann direkt etwas stehen.

Open in writeLaTeX
\documentclass[margin=5mm, tikz]{standalone}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usepackage{amsmath, amssymb}
\begin{document}
\begin{tikzpicture}[
x=1cm, y=1cm,  scale=1.0, 
font=\footnotesize,
>=latex
]
\draw[->] (-4.5,0) -- (4.5,0) node[below] {$x$};

\foreach \x in {-4,...,4}
\draw[shift={(\x,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[below] {\footnotesize $\x$};

\draw[->] (0,-3.5) -- (0,3.5) node[left] {$y$};

\foreach \y in {-3,...,3}
\draw[shift={(0,\y)},color=black] (2pt,0pt) -- (-2pt,0pt) node[left] {\footnotesize $\y$};
\draw[color=black] (0pt,-5pt) node[right] {\footnotesize $0$};

\draw[thick,color=red] plot[samples=200, domain=1:2.3] 
(\x,{sqrt((\x^3-\x))}) node[] {};

\draw[thick,color=red] plot[samples=200, domain=1:2.3] 
(\x,{-sqrt((\x^3-\x))}) node[] {};

\draw[thick,color=red] plot[samples=200, domain=0:-1] 
(\x,{sqrt((\x^3-\x))}) node[] {};

\draw[thick,color=red] plot[samples=200, domain=0:-1] 
(\x,{-sqrt((\x^3-\x))}) node[] {};

\draw[thick, color=blue] plot[samples=200, domain=-3:3] 
(\x,{\x+0.5}) node[] {};

\draw[thick, color=blue, dashed] (2.039, -3) -- (2.039,3);
\end{tikzpicture}
\end{document}

gefragt 15 Apr '14, 05:00

karra's gravatar image

karra
101156
Akzeptiert: 40%

bearbeitet 15 Apr '14, 14:01

esdd's gravatar image

esdd
14.2k53251


Eine Möglichkeit wäre das von Hand zu machen:

Open in writeLaTeX
%....
%Schnittpunkt
\draw [red, fill=yellow]  (2.039,2.539) circle (2pt) node[right] {$S$};

\end{tikzpicture}

Rest wie gehabt.

Eine Lösung mit der Bibliothek 'intersections' bekomme ich für diese Kurven im Moment nicht hin.

Permanenter link

beantwortet 15 Apr '14, 06:59

cis's gravatar image

cis
5.4k860168

Habe es nun so gelöst.

(15 Apr '14, 08:49) karra

Hier ist noch ein Vorschlag, bei dem alle Schnittpunkte von TikZ ermittelt werden. Falls die gestrichelte Linie eine Senkrechte zur x-Achse durch den Schnittpunkt sein soll, dann kann man auch diese einzeichnen lassen, ohne den Punkt zu berechnen.

alt text

Open in writeLaTeX
\documentclass[margin=5mm, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}[
  font=\footnotesize,
  >=latex,
  kurve/.style={thick,red,samples=100,domain=#1},
  gerade/.style={thick,blue,samples=2,domain=#1},
  punkt/.style={circle,inner sep=2pt,fill=white,draw},
]
%Koordinatensystem
\draw[->] (-4.5,0) -- (4.5,0) node[below] {$x$};
\foreach \i in {1,...,4}{\foreach \x in {-\i,\i}
  \draw[shift={(\x,0)}] (0pt,2pt) -- (0pt,-2pt) node[below] {$\x$};}
\draw[->] (0,-3.5) -- (0,3.5) node[left] {$y$};
\foreach \i in {1,...,3}{\foreach\y in {-\i,\i}
  \draw[shift={(0,\y)}] (2pt,0pt) -- (-2pt,0pt) node[left] {$\y$};}
\node[below left] {$0$};
%Kurve
\foreach[count=\i] \d/\v in {1:2.3/,1:2.3/-,0:-1/,0:-1/-}
  \draw[kurve=\d,name path=k\i]plot(\x,{\v sqrt((\x^3-\x))});
%Beseitigen der Lücke bei x=-1
  \foreach \v in {,-}
    \draw[thick,red,samples at={-1,-.99}]plot(\x,{\v sqrt((\x^3-\x))});
%Gerade
\draw[gerade=-3:3,name path=g] plot(\x,{\x+0.5});
%%% ----
%Schnittpunkte ermitteln und beschriften
\foreach[count=\i] \m/\o in {1/right,3/right,4/below}
  \node[name intersections={of={k\m} and g,name=s\i},label=\o:$S_\i$]at(s\i-1){};
%gestrichelte Senkrechte durch 1.Schnittpunkt
\draw[thick,blue,dashed](s1-1|- 0,-3)--(s1-1|-0,3);
%Schnittpunkte einzeichnen
\foreach\i in {1,2,3}\node[punkt]at(s\i-1){};
\end{tikzpicture}
\end{document}

Außerdem kann man auch noch den zweiten Schnittpunkt der gestrichelten Linie mit der Kurve einzeichnen lassen. Dazu ist es notwendig, die gestrichelte Linie mittels name ebenfalls zu bezeichnen:

Open in writeLaTeX
\documentclass[margin=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}[
  font=\footnotesize,
  >=latex,
  kurve/.style={thick,red,samples=100,domain=#1},
  gerade/.style={thick,blue,samples=2,domain=#1},
  punkt/.style={circle,inner sep=2pt,fill=white,draw},
]
%Koordinatensystem
  \draw[->] (-4.5,0) -- (4.5,0) node[below] {$x$};
  \foreach \i in {1,...,4}{\foreach \x in {-\i,\i}
    \draw[shift={(\x,0)}] (0pt,2pt) -- (0pt,-2pt) node[below] {$\x$};}
  \draw[->] (0,-3.5) -- (0,3.5) node[left] {$y$};
  \foreach \i in {1,...,3}{\foreach \y in {-\i,\i}
    \draw[shift={(0,\y)}] (2pt,0pt) -- (-2pt,0pt) node[left] {$\y$};}
  \node[below left] {$0$};
%Kurve
  \foreach[count=\i] \d/\v in {1:2.3/,1:2.3/-,0:-1/,0:-1/-}
    \draw[kurve=\d,name path=k\i]plot(\x,{\v sqrt((\x^3-\x))});
%Beseitigen der Lücke bei x=-1:
  \foreach \v in {,-}
    \draw[thick,red,samples at={-1,-.999,...,-.99}]plot(\x,{\v sqrt((\x^3-\x))});
%Gerade
  \draw[gerade=-3:3,name path=g] plot(\x,{\x+0.5});
%%% ----
%Schnittpunkte ermitteln und beschriften
  \foreach[count=\i] \m/\o in {1/right,3/right,4/below}
    \node[name intersections={of={k\m} and g,name=s\i},label=\o:$S_\i$]at(s\i-1){};
%gestrichelte Senkrechte durch 1.Schnittpunkt
  \draw[thick,blue,dashed,name path=gestrichelt](s1-1|- 0,-3)--(s1-1|-0,3);
%Schnittpunkte einzeichnen
  \foreach\i in {1,2,3}\node[punkt]at(s\i-1){};
%%% ----
%weiterer Schnittpunkt gestrichelte Linie
  \node[name intersections={of=gestrichelt and k2},
    label=right:Extrapunkt,punkt,fill=yellow]at(intersection-1){};
\end{tikzpicture}
\end{document}

alt text

Permanenter link

beantwortet 15 Apr '14, 10:31

esdd's gravatar image

esdd
14.2k53251

bearbeitet 15 Apr '14, 12:29

Ziemlich krass zusammengefaßt. Den letzten Schnittpunkt unten rechts, falls man den auch noch braucht, muß man dann vermutlich manuell ermitteln lassen.

(15 Apr '14, 10:52) cis

@cis Meinst du den zweiten mit der gestrichelten Linie? Den könnte man auch einzeichnen lassen.

(15 Apr '14, 10:55) esdd

Ja genau, den einzigen unmarkierten. Das könntest Du als Beispiel für eine intersection ohne Schleifen usw. dazuschreiben.

(15 Apr '14, 11:19) cis

Eine Lösung mit automatischer Bestimmung der Schnittpunkte:

  • TikZ-Bibliothek intersections laden
  • Schnittpunktstil definieren
  • Funktionen und Linie benennen
  • Schnitt bestimmen, node zeichnen und labeln

Relevante Ausschnitte hierfür:

Open in writeLaTeX
\usetikzlibrary{intersections}
\tikzset{schnittpunkt/.style={circle, inner sep = 2pt, draw, fill = white}}
...
\draw[name path=funktion4, thick,color=red] plot[samples=200, domain=-1:0] 
(\x,{-sqrt((\x^3-\x))}) node[] {};
\draw[name path=linie, thick, color=blue] plot[samples=200, domain=-3:3] 
(\x,{\x+0.5}) node[] {};
\path[name intersections={of=linie and funktion4}]
  node at (intersection-1) [schnittpunkt,label=below:{$P_2$}] {};

Gesamtes Codebeispiel:

Open in writeLaTeX
\documentclass[margin=5mm, tikz]{standalone}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usetikzlibrary{intersections}
\tikzset{schnittpunkt/.style={circle, inner sep = 2pt, draw, fill=white}}
\usepackage{amsmath, amssymb}
\begin{document}
\begin{tikzpicture}[
x=1cm, y=1cm,  scale=1.0, 
font=\footnotesize,
>=latex
]
\draw[->] (-4.5,0) -- (4.5,0) node[below] {$x$};

\foreach \x in {-4,...,4}
\draw[shift={(\x,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[below] {\footnotesize $\x$};

\draw[->] (0,-3.5) -- (0,3.5) node[left] {$y$};

\foreach \y in {-3,...,3}
\draw[shift={(0,\y)},color=black] (2pt,0pt) -- (-2pt,0pt) node[left] {\footnotesize $\y$};
\draw[color=black] (0pt,-5pt) node[right] {\footnotesize $0$};

\draw[name path=funktion1, thick,color=red] plot[samples=200, domain=1:2.3] 
(\x,{sqrt((\x^3-\x))}) node[] {};

\draw[name path=funktion2, thick,color=red] plot[samples=200, domain=1:2.3] 
(\x,{-sqrt((\x^3-\x))}) node[] {};

\draw[name path=funktion3, thick,color=red] plot[samples=200, domain=-1:0] 
(\x,{sqrt((\x^3-\x))}) node[] {};

\draw[name path=funktion4, thick,color=red] plot[samples=200, domain=-1:0] 
(\x,{-sqrt((\x^3-\x))}) node[] {};

\draw[name path=linie, thick, color=blue] plot[samples=200, domain=-3:3] 
(\x,{\x+0.5}) node[] {};

\draw[thick, color=blue, dashed] (2.039, -3) -- (2.039,3);

\path[name intersections={of=linie and funktion1}]
  node at (intersection-1) [schnittpunkt,label=below right:{$P_1$}] {};
\path[name intersections={of=linie and funktion4}]
  node at (intersection-1) [schnittpunkt,label=below:{$P_2$}] {};
\end{tikzpicture}
\end{document}

Schnittpunkte Linie und Kurven

Den anderen Schnittpunkt, analog Schnitt von linie und funktion3, hab ich noch nicht hingekriegt, hier kam nur der gleiche Schnittpunkt P1 heraus. Evtl. findet jemand die Ursache oder Du kriegst es damit noch hin.

Permanenter link

beantwortet 15 Apr '14, 07:44

stefan's gravatar image

stefan ♦♦
5.8k12134

Das Prinzip habe ich verstanden. Hätte aeigentlich gedacht, dass der dritte Schnittpunkt durch den Schnittpunkt von "funktion4" und "linie" ebenfalls angezeigt wird...

(15 Apr '14, 08:49) karra

@Stefan Den Schnittpunkt mit funktion3 findet er (aus welchem Grund auch immer) nur mit niedrigerer sample Anzahl. Das der nicht gefundene Schnittpunkt dann einfach beim schon ermittelten P1 eingezeichnet wird, liegt daran, dass du für alle Schnittpunkte den gleichen Koordinatennamen (intersection-1) nutzt. Wenn also kein neuer Schnittpunkt gefunden wird, wird einfach der vorhergehende gleichen Namens weiter benutzt.

(15 Apr '14, 10:40) esdd
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×492
×44
×21
×6

Frage gestellt: 15 Apr '14, 05:00

Frage wurde angeschaut: 8,396 Mal

Zuletzt aktualisiert: 15 Apr '14, 15:06