【问题标题】:Perspective issue with scatter3 in MATLAB R2011bMATLAB R2011b 中 scatter3 的透视问题
【发布时间】:2013-07-01 02:36:08
【问题描述】:

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

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

【问题讨论】:

    标签: matlab 3d scatter-plot


    【解决方案1】:

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

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

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

    【讨论】:

    • 'zbuffer' 和 'opengl' 确实可以解决问题。 'zbuffer' 重绘速度很慢,但 'opengl' 工作正常。感谢您的帮助。
    猜你喜欢
    • 2014-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多