在MATLAB R2011b中使用scatter3的透视问题

时间:2013-07-03 12:00:36

标签: matlab 3d scatter-plot

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

[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向量中点的顺序吗?它是否已在新版本中修复?

1 个答案:

答案 0 :(得分:2)

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

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

set(gcf,'renderer','zbuffer');
set(gcf,'renderer','opengl');