MATLAB:当 faceAlpha 不为 1 时,补丁会在各种情况下消失

标签 matlab graphics rendering patch

我在 Windows 7 上使用 64 位 matlab r2010a(如果这是一个模糊的渲染错误,这可能是相关的)

这显然是一个奇怪的错误,当文本解释器是 latex 时会出现

set(0, 'DefaultTextInterpreter', 'Latex');

此代码将生成一个带有黑色边框的蓝色框和轴外的图例

cla reset;
patch ([0.5 0.5 0.75 0.75 0.5], [0.5 0.75 0.75 0.5 0.5], 'b', 'FaceAlpha',1); 
xlim([0 1]); 
ylim([0 1])
legend ('blah', 'Location', 'bestOutside')

如果我更改代码,使补丁具有非不透明的 alpha 值,

cla reset;
patch ([0.5 0.5 0.75 0.75 0.5], [0.5 0.75 0.75 0.5 0.5], 'b', 'FaceAlpha',0.5); 
xlim([0 1]); 
ylim([0 1]);
legend ('blah', 'Location', 'bestOutside')

我得到一个空的黑框而不是一个填充的黑框,并且轴的大小已正确调整以将图例放在外面但没有图例。

如果我将所有代码运行到图例,补丁也会消失,然后单击图形菜单上的“编辑绘图”。取消选中“编辑图”后,补丁不会重新出现。在单击和取消单击“编辑图”之前和之后,图形和轴属性(分别使用 get(gcf) 和 get(gca))是相同的

调整图形窗口的大小不会导致面片消失。从命令行调整轴的大小:

p = get(gca, 'Position');p(3) = p(3)/2;set (gca, 'Position', p)

不会导致补丁消失。

我已经尝试将 opengl 设置为硬件和软件模式(使用 opengl 硬件,opengl 软件),但没有发现任何区别。

最佳答案

感谢 rasman 尝试重现错误但失败了。这帮助我弄清楚问题是 latex 解释器和 openGL 之间的交互。这显然与 MATLAB 错误 359330 有关

解决方案是单独设置对象的文本属性,而不是使用默认渲染选项(这很痛苦)

总结

使用 OpenGL 将 defaultTextInterpreter 图属性设置为 'latex' 会导致 MATLAB 在打印到 PostScript 时进行 SEGV 或断言 说明

使用 OpenGL 渲染器时,将图窗的 defaultTextInterpreter 属性设置为“latex”,然后打印到 PostScript 或封装的 PostScript 可能会导致 MATLAB 崩溃或断言。例如这段代码,

figure;
axes;
set(gcf,'defaultTextInterpreter','latex');
set(gcf,'renderer','openGL');
print figure.eps;

可能会导致崩溃或断言。在其他时候,MATLAB 命令窗口中可能会出现以下错误:

??? Error using ==> strcat Not enough input arguments.

Error in ==> tex>localCheckValidString at 138 strchk = strcat(str{:});

Error in ==> tex at 111 [err] = localCheckValidString(str);

解决方法

使用 OpenGL 时,不要将 defaultTextInterpreter 属性设置为“latex”。相反,将文本对象的解释器属性单独设置为“latex”。

关于MATLAB:当 faceAlpha 不为 1 时,补丁会在各种情况下消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6218715/

相关文章:

matlab - OPC 服务器 : Start Stop Pause getData(again use) DYMOLA MATLAB

java - 如何锐化android中的图像?

HTML5 Canvas 弧在 Google Chrome 中无法正确呈现

performance - 在 MATLAB 中用 bsxfun 替换 repmat

excel - 使用 xlswrite 将大矩阵从 MATLAB 导出到 Excel

graphics - 如何根据高度图计算可见区域?

ios - 我的实验表明渲染顺序在 THE 体系结构中对性能有很大影响,为什么?

xml - 在android studio中隐藏 "Rendering Problems"提示

matlab - 使用 Octave 估算数据周期的最快方法是什么?

image-processing - 通过 Mathematica 中的脚本增加图形细节