我在Matlab 2010b中使用windows xp在补丁绘图中遇到了一些奇怪的问题。
当我尝试绘制下面的补丁时,我得到的补丁并非全部填充,但有一些空白部分。
如果我将渲染器设置为“画家”(见下文),这可以解决
但后来我无法改变补丁的透明度。
有没有人遇到过类似的问题?任何解决方法?
x = [734608.791666667;734608.843750000;734609;734609.041666667;734609.086805556;734609.125000000;734609.250000000;734609.277777778;];
y = [85.7847149493030;95.4499999983124;96.4800000077516;112.549999984098;109.949999996456;118.299999970804;120.450000002981;112.600000008944;];
figure;
set(gcf, 'Renderer', 'opengl');
patch(x, y, 'r');
title('this plot is with wrong vertices positions');
figure;
set(gcf, 'Renderer', 'painters');
patch(x, y, 'r', 'FaceAlpha', 0.1);
title('this plot is OK, but renderer ignores the transparency');
figure;
set(gcf, 'Renderer', 'opengl');
patch(x, y, 'r', 'FaceAlpha', 0.1);
title('this plot is with wrong vertices positions, but with transparency');
答案 0 :(得分:4)
问题似乎来源于MATLAB - >某些地方的浮点精度。 OpenGL渲染管道(我猜)。
如果你操纵x到:
x = [734608.791666667;734608.843750000;734609;734609.041666667;734609.086805556;734609.125000000;734609.250000000;734609.277777778;];
x = (x - mean(x));
情节似乎工作正常。