Ich habe einen Surface-Plot der Funktion z = x^2+y^2 und möchte den Raum unterhalb davon füllen, so dass das Bild einen soliden dreidimensionalen Körper darstellt. Wie kann man das am besten umsetzen? Ich werde einen ersten Vorschlag als Antwort posten und freue mich über Verbesserungen und Alternativen. Bei weiteren Vorschlägen kann sehr gern eine andere Funktion genommen werden. Minimalbeispiel: \documentclass[border=15pt]{standalone} \usepackage{pgfplots} \usepgfplotslibrary{colormaps} \begin{document} \begin{tikzpicture} \begin{axis}[ domain = -4:4, zmax = 50, colormap/bone, grid ] \addplot3 [surf] {x^2+y^2}; \end{axis} \end{tikzpicture} \end{document} gefragt 20 Aug '14, 11:04 stefan ♦♦ |
Open in writeLaTeX
\documentclass[border=15pt]{standalone} \usepackage{pgfplots} \usepgfplotslibrary{colormaps,fillbetween} \pgfplotsset{compat=1.10} \begin{document} \begin{tikzpicture} \pgfdeclarelayer{pre main} \pgfsetlayers{pre main,main} \begin{axis}[ hide axis, domain = -4:4, zmax = 50, colormap/bone ] \begin{pgfonlayer}{pre main} \addplot3 [surf] {x^2+y^2}; \end{pgfonlayer} \addplot3 [name path = xline, draw = none] (x,-4,0); \addplot3 [name path = yline, draw = none] (4,y,0); \addplot3 [name path = xcurve, y domain = 0:0, draw = none] (x,-4,{x^2+16}); \addplot3 [name path = ycurve, y domain = 0:0, draw = none] (4,x,{16+x^2}); \addplot [left color = black, right color = black!50, draw = none] fill between[of = xcurve and xline]; \addplot [left color = black!50, right color = black, draw = none] fill between[of = yline and ycurve, reverse = true]; \end{axis} \end{tikzpicture} \end{document} beantwortet 20 Aug '14, 11:18 stefan ♦♦ |