Zeichnen von durchgezogenen Linien auf 3D-Diagrammen

Zeichnen von durchgezogenen Linien auf 3D-Diagrammen

Ich versuche, eine Linie zu zeichnen, die sich entlang eines 3D-Diagramms bewegt, um den Integrationsbereich darzustellen.

Bildbeschreibung hier eingeben

Die schwarze Linie unten stellt den Grenzwert für den Integrationsbereich dar. Ich hätte gerne eine Spur der Linie, die sich entlang der Oberfläche der Funktion bewegt. Hier ist das MWE:

\PassOptionsToPackage{usenames,dvipsnames,table,x11names}{xcolor}
\documentclass[a4paper, 12pt]{article}
\usepackage{pgfplots}
\usepgfplotslibrary{colormaps,fillbetween}

\begin{document}

\begin{tikzpicture}

\begin{axis}[
zmax=15,
zmin=0,
view = {45}{45},
grid=minor,
colormap={mycol}{color=(Tan), color=(Tan)},
xlabel = $s$,
ylabel = $h$,
zlabel = {$f(s,h)$},
ticks = none,
]

\addplot3[
surf,
samples=30,
domain=0:1.5,
opacity=0.5,
]
{12*exp(-(4*x+3*y))};

\draw[black, thick] (0,0,0) -- (1.5,1.5,0);

\addplot3 [name path = xline, draw = none, domain=0:1.5] (x,0,0);
\addplot3 [name path = xcurve, domain=0:1.5, y domain = 0:0, draw = none] 
    (x, 0, {12*exp(-(4*x))});
\addplot [color = Tan, opacity = 0.5, draw = none]
  fill between[of = xcurve and xline];

\addplot3[
mesh,
draw=Bittersweet,
samples=30,
domain=0:1.5,
opacity = 0.75
]
{12*exp(-(4*x+3*y))};

% Attempt 1
%\addplot3 [domain=0:1.5, black, thick, samples=30] (x,x,{12*exp(-(4*x+3*y))});

%Attempt 2
%\addplot3 [domain=0:1.5, black, thick, samples=30] (x,x,{12*exp(-(7*x))});

\end{axis}
\end{tikzpicture}

Die beiden auskommentierten Zeilen am Ende, die ich Versuch 1 und Versuch 2 genannt habe, sind nämlich meine beiden Versuche, dies zu tun. Hier ist das Ergebnis für jeden von ihnen:

Versuch 1

Bildbeschreibung hier eingeben

Versuch 2

Bildbeschreibung hier eingeben

Versuch 1 ist ein Chaos, aber Versuch 2 kommt dem, was ich will, sehr nahe, zieht aber eine Linie über die Start- und Endpunkte der Funktion. Irgendwelche Vorschläge, wie ich das beheben könnte?

Antwort1

samples y=1Sie waren bereits auf dem richtigen Weg. Mit einem zweiten Versuch können Sie erreichen, was Sie möchten .

(Außerdem habe ich einige kleinere Optimierungen an Ihrem Code vorgenommen. Weitere Einzelheiten finden Sie in den Kommentaren im Code.)

% used PGFPlots v1.16
\documentclass[border=5pt]{standalone}
\usepackage[dvipsnames]{xcolor}
\usepackage{pgfplots}
    \usepgfplotslibrary{fillbetween}
    \pgfplotsset{
        compat=1.16,
    }
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        zmax=15,
        zmin=0,
        view={45}{45},
        grid=minor,
        colormap={mycol}{color=(Tan), color=(Tan)},
        xlabel=$s$,
        ylabel=$h$,
        zlabel={$f(s,h)$},
        ticks=none,
        % (moved common options here)
        domain=0:1.5,
        samples=30,
    ]

        \addplot3[
            surf,
            opacity=0.5,
            % removed one `\addplot' by adding the next line
            faceted color=Bittersweet,
        ] {12*exp(-(4*x+3*y))};

        \draw [black, thick] (0,0,0) -- (1.5,1.5,0);

        \addplot3 [
            name path=xline,
            draw=none,
        ] (x,0,0);
        \addplot3 [
            name path=xcurve,
            % replaced this ...
%            y domain=0:0,
            % by ...
            samples y=1,
            draw=none,
        ] (x,0,{12*exp(-(4*x))});
        \addplot [color=Tan, opacity=0.5]
            fill between [of=xcurve and xline];


        % Attempt 2
        \addplot3 [
            black,
            thick,
            samples y=1,        % <-- added
        ] (x,x,{12*exp(-7*x)});

    \end{axis}
\end{tikzpicture}
\end{document}

Bild, das das Ergebnis des obigen Codes zeigt

verwandte Informationen