我使用 tikz-pgf 的 3dplot 绘制了一个椭圆体。现在我想根据它的平均曲率给表面着色(我已经计算了这个函数。)但 3dplot 似乎不支持 sin 和 cos 参数作为参数填充选项的参数。对吗?我将在这里提供一个测试用例:
\documentclass{minimal}
\usepackage{verbatim}
\usepackage{tikz}
\usepackage{3dplot}
\usepackage[active,tightpage]{preview} %generates a tightly fitting border around the work
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{2mm}
\begin{document}
\tdplotsetmaincoords{70}{135}
\begin{tikzpicture}[line join=bevel,tdplot_main_coords, fill opacity=.7]
\tdplotsphericalsurfaceplot[parametricfill]{40}{20}%
{1/sqrt(%
sin(\tdplottheta)^2*( (cos(\tdplotphi)/2)^2 + (sin(\tdplotphi)/1)^2 )%
+ (cos(\tdplottheta)/1)^2
)}{black}%
{%
sin(\tdplotphi)
% 2*(5-3*sin(\tdplottheta)^2*cos(\tdplotphi)^2)/%
% sqrt((4-3*sin(\tdplottheta)^2*cos(\tdplotphi)^2)^3)
}%
{}%{\draw[color=black,thick,->] (0,0,0) -- (2,0,0) node[anchor=north east]{$x$};}%
{}%{\draw[color=black,thick,->] (0,0,0) -- (0,2,0) node[anchor=north west]{$y$};}%
{}%{\draw[color=black,thick,->] (0,0,0) -- (0,0,2) node[anchor=south]{$z$};}%
\end{tikzpicture}
\end{document}
想知道我是否做错了什么,或者该功能是否不受支持。在这种情况下:你知道我可以使用什么工具来实现我的目标吗?
亲切问候 Konstantin
答案1
我认为现在你需要使用\usepackage{tikz-3dplot}
而不是3dplot
。你的例子对我来说很有效。有时观众不太高兴...
\tdplotsetmaincoords{40}{0}
\begin{tikzpicture}[line join=bevel,tdplot_main_coords, fill opacity=1]
\tdplotsphericalsurfaceplot[parametricfill]{72}{36}%
{1/sqrt(%
sin(\tdplottheta)^2*( (cos(\tdplotphi)/2)^2 + (sin(\tdplotphi)/1)^2 )%
+ (cos(\tdplottheta)/1)^2)}{black}%
{100*abs(2*(5-3*sin(\tdplottheta)^2*cos(\tdplotphi)^2)/%
sqrt((4-3*sin(\tdplottheta)^2*cos(\tdplotphi)^2)^3))}%
{}{}{}