
Ich habe zwei 3D-Diagramme, eines in Polarkoordinaten, das andere parametrisch. Ich möchte auf demselben Diagramm auch die Konturen haben. Dies sind die aktuellen Diagramme:
\begin{tikzpicture}
\begin{axis}[view={130}{30}]
\addplot3 [surf,z buffer=sort,samples=30,domain=0:360,y domain=0:5, data cs=polar] (x,y,y^2);
\addplot3 [contour gnuplot={contour dir=y,draw color=red,labels=false},y filter/.expression={5},] {x^2};
\addplot3 [contour gnuplot={contour dir=x,draw color=blue,labels=false},x filter/.expression={5},] {y^2};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[view={130}{30}]
\addplot3[surf,domain=-1:1,y domain=0:360,z buffer=sort] ({cosh(x)*cos(y)}, {cosh(x)*sin(y)}, {sinh(x)});
\end{axis}
\end{tikzpicture}
Meine Frage ist nun: Wie kann ich die Konturen beider Diagramme automatisch darstellen, da sie über Polarkoordinaten oder Parameter definiert sind? Die x
und y
Konturen des Paraboloids sind einfach fest codiert.
Ich suche (falls es eine gibt) nach einer Möglichkeit, die Konturen automatisch zu erstellen, ohne sich darum zu kümmern, welche Koordinaten verwendet werden. So ähnlich wie das Beispiel auf Seite 156Hier
Ich habe auch so etwas bekommen
Fügen Sie die folgende Zeile hinzu:
\addplot3 [contour gnuplot={contour dir=z,draw color=black,labels=false},z filter/.expression={25},] {y^2+x^2};
aber die Lösung scheint nicht optimal, da ich den Abschnitt manuell kennen muss. Gibt es eine Möglichkeit, dies zu erreichen?
Bearbeitung 1: Ich sollte vielleicht meinen Bedarf klarstellen. Angenommen, ich habe eine Funktion f
, die ich darstellen möchte. Ich kann ihre kartesische Formel, eine Parametrisierung oder Polarkoordinaten verwenden. In beiden Fällen sollte das gleiche Ergebnis erzielt werden. Im ersten Fall ist das Finden von Konturen mithilfe von contour gnuplot
ganz einfach und ich muss nur die ursprüngliche Funktion eingeben.
Wenn ich f
jedoch eine parametrische Form habe oder Polarkoordinaten verwende, muss ich die Konturgleichungen bereits kennen, um sie zeichnen zu können. Gibt es eine Möglichkeit, das Problem so zu verallgemeinern, dass f
ich für jede beliebige Form die Konturen zeichnen kann?
Grundsätzlich hätte ich gern die Projektion der Funktion f
auf die Achse und möchte ihre Kontur darstellen.