【问题标题】:How to prevent LATEX-labels in MATLAB GUI to become blurry?如何防止 MATLAB GUI 中的 LATEX-labels 变得模糊?
【发布时间】:2012-02-28 20:40:45
【问题描述】:

在我当前的 MATLAB GUI 项目中,我有两个轴对象。第一个由解决方法"uibutton"(我不使用 GUIDE)使用,以显示 LaTeX 公式(据我所知,只有轴标签能够使用 LaTeX,而普通静态文本字段则不能。 ..)。另一个坐标区对象用于实际绘制 3D 函数。

程序有以下步骤:

  1. 第一个轴创建 LATEX 公式(例如 f(x)=)。
  2. 用户在 LaTeX 公式后的编辑字段中输入函数(例如 f(x)=a+b)。
  3. 用户按下“绘图”按钮。
  4. 3D 函数绘制在第二个坐标区对象中。

问题:

一旦绘制了 3D 函数,渲染良好的 LaTeX 公式就会变得清晰。有什么办法可以防止这种情况发生吗?

http://i42.tinypic.com/348pq2u.png(问题演示见图)

【问题讨论】:

  • dieterw,有趣的问题!我所能提供的是,如果您愿意,您可以直接在 SO 中上传您的图片。
  • 嘿,麦克达夫,感谢您的快速回复。是的,我也想过,但问题是,如果用户调整窗口大小,图片会变得像素化。如果这些 LaTeX 字体在调整大小时重新呈现,则不会发生这种情况。
  • 哇!很棒的推理!我认为你会走得很远!
  • MATLAB 文档建议您可以直接制作普通文本字段 LaTeX - mathworks.com/help/techdoc/creating_plots/f0-4741.html#bq558_t 在您运行的版本中不是这样吗?这样做可能会避免这个问题。您还可以使用第二个 LaTeX 创建轴,这样它们就不会出现在第二组“后面”,这可能会破坏渲染器。
  • 非常感谢 tmpearce,这就像一个魅力!

标签: user-interface matlab latex uibutton


【解决方案1】:

在绘制 3D 绘图之前和之后检查您的图形属性

get(gcf, 'renderer')

我的猜测是绘制 3D 函数会将渲染器从默认(“画家”)更改为另一个(可能是 OpenGL)。 Matlab 的 Latex 渲染似乎不能很好地与 zbuffer 或 OpenGL 配合使用(这些生成位图而不是线条图)。

如果画家无法正确渲染您的 3D 图形,您可能会卡住,但您可以尝试通过手动将渲染器设置回画家来强制它

set(gcf, 'renderer', 'painters')

【讨论】:

  • 感谢您的回答。我试过了,实际上,通过强制画家渲染器,LaTeX 字体保持平滑,但正如您已经猜到的那样,3D 图形无法正确渲染。由于无法为一个轴/图形设置不同的渲染器,我的想法是在一个窗口中定义两个不同的图形(一个带有 LaTeX 标签,一个带有 3D 图)并为每个图形设置不同的渲染器。我必须尝试,但也许明天。还是有可能?
  • @dieterw 我发现如果您需要来自 MATLAB 的出版质量数据并且您正在组合线条艺术和补丁,您通常必须单独创建每个组件,然后将它们组合到图形程序中,例如Adobe 插画家。在这里,您也可以事后直接在 Illustrator 中添加文本。
  • 信息量很大。我猜线条艺术等于 2D 图和补丁等于 3D 图?问题是我编写的这个程序用于实时演示一些微观经济功能,我的教授应该能够在一侧更改参数(因此是 LaTeX 标签)并在另一侧查看 3D 图。如果我将两者都发布在一个文档中,我猜你的方式是最好的。
  • 好的,两位数的解决方案似乎合乎逻辑,但我一直在搜索并找到this post,它又指向Myaa,这恰好可以用简单的@ 来消除乳胶标签或图例的锯齿。 987654325@ 命令。
猜你喜欢
  • 1970-01-01
  • 2013-09-11
  • 2016-07-08
  • 1970-01-01
  • 2018-05-03
  • 2023-04-08
  • 1970-01-01
  • 2017-01-05
  • 1970-01-01
相关资源
最近更新 更多