我正在尝试使用 PGFplots 显示带有轴标签的阴影 3D 椭圆体。到目前为止,我已经实现了这个目标。
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots,tikz-3dplot}
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
width=0.8\textwidth,
axis equal,
axis lines = center,
y label style={at={(axis cs:0,2,0)},anchor=west},
xlabel = {$\lambda_1,\ \vec{e}_1$},
ylabel = {$\lambda_2,\ \vec{e}_2$},
zlabel = {$\lambda_3,\ \vec{e}_3$},
ticks=none,
]
\addplot3[%
shader=interp,
opacity = 0.3,
fill opacity=0.3,
surf,
colormap/blackwhite,
variable = \u,
variable y = \v,
domain = 0:180,
y domain = 0:360,
]
({2*cos(u)*sin(v)}, {2*sin(u)*sin(v)}, {0.5*cos(v)});
\end{axis}
\end{tikzpicture}
\end{document}
结果如下: 这种阴影不会给人 3D 印象,我想要的是这样的印象:
是否可以在此坐标系中定义新的 3d 阴影?我在 pgfplot 文档中找不到这样的命令。所有预定义的阴影都不合适。很高兴得到任何帮助!
答案1
我看到了你的帖子LaTeX 社区早些时候,所以我已经为你的主题添加了一个答案带 PGF 图的阴影椭圆体:
您可以使用 point meta = u。您还可以使用颜色图,就像我在轴上所做的那样。
我添加了colormap={}{ gray(0cm)=(0.8); gray(1cm)=(0);}
和point meta = u to the plot
:
答案2
画圆,了解圆内的点,用“范围”拉伸和旋转这是我的代码:
\begin{center}
\begin{tikzpicture}[>=latex,scale=1, xscale=1, opacity=0.5]
% second sphere
\begin{scope}[rotate=45, xscale=3, yscale=2, shift={(2.3,-0.2)}]
\coordinate (O) at (0,0);
\shade[ball color=gray!10!] (0,0) coordinate(Hp) circle (1) ;
\draw[] (O) circle (1);
\draw[rotate=5] (O) ellipse (1cm and 0.66cm);
\draw[rotate=90] (O) ellipse (1cm and 0.33cm);
\draw[rotate=40] (O) ellipse (0.404cm and 0.135cm);
\fill[black] (O) circle (1pt);
\coordinate(L1) at (1,0);
\node[above ] at (L1) {$\lambda_1$};
\draw[-latex] (O) -- (L1);
\coordinate(L2) at (0,1);
\node[left ] at (L2) {$\lambda_2$};
\draw[-latex] (O) -- (L2);
\coordinate(L3) at (0.3064,0.257);
\node[right,yshift=2mm] at (L3) {$\lambda_3$};
\draw[-latex] (O) -- (L3);
\end{scope}
% axis
\end{tikzpicture}
\end{center}