【发布时间】:2015-04-01 22:04:48
【问题描述】:
我正在尝试使用 OpenGL 在图表上绘制大量数据。我想使用这个渲染器,因为它是唯一支持透明度的渲染器。数据绘制得很好,但是一旦放大连接数据点的线,就不能正确排列,如下所示: 我已经测试过使用 Painters 和 Zbuffer 绘制数据,并且当放大相同的数量时,线条正确连接数据。这是 Zbuffer 生成的(Painters 看起来完全一样,但网格线更重):
您可以使用以下代码重新创建问题。请注意,这不会创建与所示完全相同的图,但仍清楚地说明了问题。
t = [735480.784722222 735480.826388889 735480.868055556 735480.909722222 735480.951388889 735481 735481.034722222 735481.076388889 735481.118055556 735481.159722222 735481.201388889 735481.243055556 735481.284722222 735481.326388889 735481.368055556 735481.409722222 735481.451388889 735481.493055556 735481.5 735481.534722222 735481.576388889];
d = [10.0799999237061 10.0799999237061 10.0799999237061 10.0699996948242 10.0699996948242 10.0799999237061 10.0699996948242 10.0699996948242 10.0699996948242 10.0699996948242 10.0699996948242 10.0600004196167 10.0600004196167 10.0600004196167 10.0699996948242 10.0699996948242 10.0600004196167 10.0600004196167 10.0600004196167 10.0600004196167 10.0500001907349];
figure;
plot(t, d, '.-');
set(gcf, 'renderer', 'opengl');
【问题讨论】:
-
如果您能提供重现问题的代码将会很有帮助。否则我们只是在黑暗中蹒跚而行。
-
@knedlsepp - 完成,请参阅相关示例。
-
这很奇怪。我的 R2014a 也有同样的问题。似乎有一个涉及双/单精度的错误。我想与此同时,您可以通过从 x 值中减去
735480来解决...
标签: matlab opengl render floating-point-precision