我似乎找不到在 3d 刻面图中去除表面网格中的线条的方法。我需要一个不使用“shader=interp”(即渐变填充)的解决方案,以便表面颜色保持不变。
例如,以下代码在 Acrobat 中生成白线(见末尾)。我尝试了各种技巧,例如“刻面颜色 = 无、绘制不透明度 = 0。、线宽 = 0。、绘制 = 无”。我把表面设为半透明,这样效果就很明显了。
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot3[surf, opacity=0.8, shader=faceted, faceted color = none, draw opacity=0., line width=0.,draw=none] %shader interp offends lualatex
coordinates {
(-3, -3, 3.57005)(-2.8125, -3, 3.50682)(-2.625, -3, 3.4438)\par
(-3, -2.8125, 3.5075)(-2.8125, -2.8125, 3.44005)(-2.625, -2.8125, 3.37252)\par
(-3, -2.625, 3.4453)(-2.8125, -2.625, 3.37336)(-2.625, -2.625, 3.301)\par
(-3, -2.4375, 3.38377)(-2.8125, -2.4375, 3.3071)(-2.625, -2.4375, 3.22959)\par
};
\end{axis}
\end{tikzpicture}
\end{document}
看看白线:
(这可能是 Acrobat 中的一个错误吗?例如,evince 显示了所需的结果)
编辑:其中一条评论指出,flat 应该给出一种平坦的颜色,并且补丁周围没有线条。结果是
\addplot3[surf, opacity=0.8, shader=flat]
是线条仍然出现在边框中,这里使用 Acrobat 和 evince
答案1
问题在于所选shader=flat
和之间的组合opacity
:停用不透明度,您将看不到任何边缘。
在内部,着色器将表面片段“叠加”起来绘制。它只是简单地绘制它们(使用填充和描边)。但由于相邻的表面片段共享边缘,因此这些边缘在不透明度计算中被使用两次,从而产生不同的颜色。
我相信这是固有的shader=flat
,这里没有简单的解决方案(除了玩弄不同的fill opacity
和draw opacity
也许)。