
Estou tentando criar uma figura para ajudar a explicar diferentes tipos de integrais de linha. Isto envolve uma curva em 3 dimensões (a linha grossa), a curva no plano xy que ela segue (a linha tracejada) e as projeções nos planos xz e yz. Eu gostaria de ter a área entre a curva preta espessa e a curva tracejada preenchida, mas o que quer que eu tente, não obtenho nenhum preenchimento ou obtenho o preenchimento mostrado na figura abaixo. Eu tentei opreencher entrepacote, mas isso não parece funcionar com gráficos 3D. Quaisquer pensamentos sobre como conseguir isso serão apreciados com gratidão.
Aqui está um MWE
\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}
\begin{document}
\begin{tikzpicture}[
declare function={mynorm(\m,\s) = 1/(2*\s*sqrt(pi))*exp(- (x-\m)^2/(2*\s^2));}
]
\begin{axis}[
view={135}{45},
enlargelimits=false,
grid=major,
domain=0:16,
y domain=0:4,
samples=50,
xlabel=$x$,
ylabel=$y$,
]
\addplot3 [domain=0:4, samples=50, samples y=0, smooth, fill=gray!60] (x,0,{mynorm(1,0.5)}) \closedcycle;
\addplot3 [domain=0:16, samples=50, samples y=0, smooth, fill=gray!60] (0,x,{mynorm(1,0.5)}) \closedcycle;
\addplot3 [thick,domain=0:4, samples=50, samples y=0, smooth, fill=gray] (x,x^2,{mynorm(1.0,0.5)});
\addplot3 [domain=0:4, samples=50, samples y=0, smooth, dashed] (x,x^2,0);
\end{axis}
\end{tikzpicture}
\end{document}
que produz o resultado
Responder1
Na verdade fillbetween
funciona para mim. Basta colocar as formas em camadas diferentes para torná-las visíveis e não se cobrirem:
\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}
\begin{document}
\begin{tikzpicture}[
declare function={mynorm(\m,\s) = 1/(2*\s*sqrt(pi))*exp(- (x-\m)^2/(2*\s^2));}
]
\begin{axis}[
view={135}{45},
enlargelimits=false,
grid=major,
domain=0:16,
y domain=0:4,
samples=50,
xlabel=$x$,
ylabel=$y$,
]
\addplot3 [domain=0:4, samples=50, samples y=0, smooth, fill=gray!60, on layer=axis grid] (x,0,{mynorm(1,0.5)}) \closedcycle;
\addplot3 [domain=0:16, samples=50, samples y=0, smooth, fill=gray!60, on layer=axis grid] (0,x,{mynorm(1,0.5)}) \closedcycle;
\addplot3 [name path=A,thick,domain=0:4, samples=50, samples y=0, smooth] (x,x^2,{mynorm(1.0,0.5)});
\addplot3 [name path=B,domain=0:4, samples=50, samples y=0, smooth, dashed, on layer=axis foreground] (x,x^2,0);
\addplot3 [gray] fill between [of=A and B];
\end{axis}
\end{tikzpicture}
\end{document}