Wie man ein Z-einfaches Paraboloid auf "saubere" Weise zeichnet

Wie man ein Z-einfaches Paraboloid auf "saubere" Weise zeichnet

Ich möchte z=x^2+y^2auf dem Intervall zeichnen 0<z<9. Normalerweise verwende ich einfach pgfplotsmit dem addplot3Befehl, und für rechteckige Bereiche scheint das nicht allzu viel Mühe zu verursachen. Beispiel (ausGibt es eine einfache Möglichkeit, in TikZ eine Regelfläche wie ein hyperbolisches Paraboloid zu zeichnen?):

Bildbeschreibung hier eingeben

In meinem Fall möchte ich jedoch ein Paraboloid zeichnen und die Kante der Kurve soll r=3in der z=9Ebene liegen. Mein erster Versuch war ungefähr so ​​(angepasst von der vorherigen Frage):

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=-3,ymin=-3,zmin=0,xmax=3,ymax=3,zmax=10]
\addplot3 [surf,draw=none,restrict z to domain=0:9] {x^2+y^2};
\end{axis}
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Offensichtlich verursacht die Domäne ein Problem: Das Paraboloid lässt sich überhaupt nicht schön ausdrucken, da der letzte ausgewertete Z-Wert nicht bei liegt z=9, sondern eher irgendwo in der Nähe von unter z=9, und dabei für jedes Koordinatenpaar (x,y) variiert.

Ich könnte festlegen samples y=300, aber die Kompilierungszeit wäre wahnsinnig lang. Außerdem begrenzt es die Möglichkeiten des Dokuments, da ich viel Stapelspeicherplatz verbrauche.

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=-3,ymin=-3,zmin=0,xmax=3,ymax=3,zmax=10]
\addplot3 [surf,draw=none,restrict z to domain=0:9,samples y=300] {x^2+y^2};
\end{axis}
\end{tikzpicture}
\end{document}

Es gibt doch sicher einen besseren Weg, das zu tun?

Antwort1

Wie percusse im Kommentar sagte, könnten Sie Polarkoordinaten verwenden:

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=-3,ymin=-3,zmin=0,xmax=3,ymax=3,zmax=10]
\addplot3 [surf,draw=none,restrict z to domain=0:9, data cs=polar, domain=0:360, y domain=0:3] (x, y, y^2);
\end{axis}
\end{tikzpicture}
\end{document}

verwandte Informationen