MATLAB R2011b中scatter3的透视图问题

Tor*_*eld 5 3d matlab 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)
Run Code Online (Sandbox Code Playgroud)

请注意,如何从背面绘制一些来自背面的蓝点。该图的PNG导出中不存在该问题,因此没有必要提供图像。

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

Hug*_*lan 2

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

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

set(gcf,'renderer','zbuffer');
set(gcf,'renderer','opengl');
Run Code Online (Sandbox Code Playgroud)