Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MATLAB R2011b中scatter3的透视问题_Matlab_3d_Scatter Plot - Fatal编程技术网

MATLAB R2011b中scatter3的透视问题

MATLAB R2011b中scatter3的透视问题,matlab,3d,scatter-plot,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) 请注意,后面的一

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

[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向量中点的顺序?较新版本中是否已修复此问题?

这是默认渲染器
画师的错误。它在2012b中没有固定,我还没有下载2013a

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

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

“zbuffer”和“opengl”确实解决了这个问题。”“zbuffer”在重绘方面相当慢,但“opengl”效果很好。谢谢你的帮助。