我想要一个半径为 1、高度为 1 的圆柱体,其中心位于 xy 平面上方的原点,以及一个以原点为中心、半径为 sqrt(2) 的球体部分,覆盖圆柱体。
这就是我所做的
\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines=middle,
view={340}{25},
domain=0:5,
y domain=0:2*pi,
xmin=-1.5, xmax=1.5,
ymin=-1.5, ymax=1.5,
zmin=0.0,
samples=30,
xlabel=$x$,
ylabel=$y$,
zlabel={$z$},
]
\addplot3 [surf, z buffer=sort, opacity=0.6]
({cos(deg(y))},{sin(deg(y))},{x});
\end{axis}
\end{tikzpicture}
\end{document}
答案1
这为您提供了绘图的可能参数化。所以这是一个开始。
\documentclass[tikz,border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
\begin{document}
\begin{tikzpicture}
\begin{axis}[point meta max=1]
\addplot3[surf,shader=flat,samples=2,samples y=37,
domain=0:1,domain y=0:360,z buffer=sort,
point meta=0,opacity=0.5] ({cos(y)},{sin(y)},x);
\addplot3[surf,shader=interp,samples=15,samples y=37,
domain=45:90,domain y=0:360,z buffer=sort,
point meta=0.5] ({sqrt(2)*cos(y)*cos(x)},
{sqrt(2)*sin(y)*cos(x)},{sqrt(2)*sin(x)});
\end{axis}
\end{tikzpicture}
\end{document}
答案2
刚刚收到!
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9, colormap/blackwhite}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis equal,
axis lines=middle,
view={110}{25},
domain=0:5,
y domain=0:2*pi,
xmin=-1.5, xmax=1.5,
ymin=-1.5, ymax=1.5,
zmin=0.0, zmax=1.9,
samples=35,
xlabel=$x$,
ylabel=$y$,
zlabel={$z$},
]
\addplot3 [surf, z buffer=sort, opacity=0.6, domain=0:1, color=black!90]
({cos(deg(y))},{sin(deg(y))},{x});
\addplot3[surf,domain=45:90,domain y=0:360,z buffer=sort, opacity=0.6, color=black!50] ({sqrt(2)*cos(y)*cos(x)},
{sqrt(2)*sin(y)*cos(x)},{sqrt(2)*sin(x)});
\end{axis}
\end{tikzpicture}
\end{document}
谢谢@abcdefg