Pgfplots:带有 shader=interp 和 opacity 的 3D 图

Pgfplots:带有 shader=interp 和 opacity 的 3D 图

我有一个相当简单的问题:有没有办法在冲浪网格中使用带有不透明度因子的 shader=interp ?这是一个不起作用的示例:

\documentclass{standalone}
\usepackage{pgfplots}

\begin{document}

\def\h{1.5}
\def\mult{4}

\begin{tikzpicture}
\begin{axis}[xlabel=$x$,ylabel=$y$,view={20}{50},zmin=-4,zmax=4,
      variable=\s,variable y=\t,domain=0:1,hide axis,
      colormap={custom}{color(0)=(cyan) color(1)=(orange)}]

\def\triangleParamX{\s}
\def\triangleParamY{(1-\s)*\t}

\addplot3[black,mark=none] coordinates {(0,0,0) (0,1,0)};
\addplot3[black,mark=none] coordinates {(0,0,-\h) (0,0,\h)};
\addplot3[black,mark=none] coordinates {(0,0.5,-\h) (0,0.5,\h)};
\addplot3[black,mark=none] coordinates {(0,1,-\h) (0,1,\h)};
\addplot3[black,mark=none] coordinates {(0.5,0.5,-\h) (0.5,0.5,\h)};
\addplot3[black,mark=none] coordinates {(1,0,-\h) (1,0,\h)};
\addplot3[opacity=0.5,surf,shader=interp] (\triangleParamX,\triangleParamY,\mult*1-\mult*3*x-\mult*3*y+\mult*4*x*y+\mult*2*x*x+\mult*2*y*y);
\addplot3[black,mark=none] coordinates {(0,1,0) (1,0,0) (0,0,0)};
\addplot3[black,mark=none] coordinates {(0.5,0,-\h) (0.5,0,\h)};

\end{axis}
\end{tikzpicture}

\end{document}

它产生以下结果:

shader=interp,不透明度不起作用

但是,如果您在后一个示例中仅替换shader=interpshader=flat则会得到以下内容:

着色器=平面,不透明度有效

这里,不透明度起作用了,但我不希望表面上有线条。有什么技巧可以做到这一点吗?

干杯

答案1

好吧,这实际上不是一个答案,而更像是情况的演变。我最近更新了 Adob​​e Reader,现在可以正常工作shader=interpopacity见图)。但是在其他查看器中仍然不行。

无论如何,感谢大家的时间!:)

在此处输入图片描述

相关内容