5

我看到三维散点图的透视问题:一些点被绘制在当前投影中应该在它们前面的点上。带有采样圆柱体的示例:

[r, phi, h] = meshgrid(1, 0:pi/10:2*pi, 0:0.05:1);
x = r.*cos(phi);
y = r.*sin(phi);
z = h;
xyz = [x(:) y(:) z(:)];
scatter3(xyz(:,1), xyz(:,2), xyz(:,3), 50, xyz(:,3), 'filled')
view(-37, 28)

请注意后面的一些蓝色圆点是如何绘制在前面的红色圆点上的。该问题在图形的 PNG 导出中不存在,因此提供图像没有意义。

那么,为什么会这样呢?它是否取决于 x、y、z 向量中点的顺序?是否已在较新版本中修复?

4

1 回答 1

2

这是默认渲染器的错误painters。2012b没有修复,2013a我还没下载。

您可以将图形渲染器更改为 zbuffer 或 opengl 来修复:

set(gcf,'renderer','zbuffer');
set(gcf,'renderer','opengl');
于 2013-07-03T13:33:10.933 回答