2012-02-28 9 views
8

私の現在のMATLAB GUIプロジェクト内に、私は2つの軸オブジェクトを持っています。最初は、LaTeX式を表示するために回避方法"uibutton"(私はGUIDEを使用しません)で使用されています(私の知る限り、軸ラベルはLaTeXを使用できるのに対し、通常の静的テキストフィールドは... )。他の軸オブジェクトは、実際に3D機能をプロットするために使用されます。MATLAB GUIのLATEXラベルがぼやけてしまうのを防ぐには?

プログラムは以下の工程を有する:

  1. 第一の軸は、ラテックス、式(例えば、F(X)を=)creats。
  2. ユーザーは、LaTeX式の後に編集フィールドに関数を入力します(例:f(x)= a + b)。
  3. ユーザーは「プロット」ボタンを押します。
  4. 第2軸オブジェクトに3D関数がプロットされています。

問題:

はとすぐに3D機能がプロットされているように、きれいにレンダリングされたLaTeXの-formularがくっきりとなります。これが起こらないようにする方法はありますか?

Problem Demonstration

http://i42.tinypic.com/348pq2u.png(問題のデモンストレーションのために絵を参照してください)

+0

dieterw、興味深い質問に手動でレンダラを設定することで、それを強制しようとすることができます!私が提供できるのは、あなたが望むならあなたがあなたの写真を直接SOにアップロードできるということです。 – macduff

+0

やあ、macduff、あなたの迅速な対応に感謝します。はい、私はそれについても考えましたが、問題は、ユーザーがウィンドウのサイズを変更するとピクチャがピクセル化されるということです。これらのLaTeXフォントがサイズ変更時に再レンダリングされると、これは起こりません。 – dieterw

+0

うわー!素晴らしい推論!私はあなたが遠くに行くと思う! – macduff

答えて

2

あなたは、3Dプロットを描く前と後

get(gcf, 'renderer') 

あなたの姿のプロパティを確認します私の推測では、3D機能をプロットすると変化することですレンダラーをデフォルト(「ペインター」)から別のもの(可能性のあるOpenGL)に変更します。 MatlabのLatexレンダリングは、zbufferやOpenGL(これらはラインアートではなくビットマップを生成する)でうまくいくようには見えません。

画家が適切にあなたの3Dグラフィックスを描画することができない場合は、貼り付けてもよいが、あなたが戻っ画家

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

答えに感謝します。私はそれを試みましたが、実際にはペインタレンダラーを強制することで、LaTeXフォントはスムーズになりましたが、あなたがすでに推測しているように、3D図形は適切にレンダリングできません。 1つの軸/図に対して異なるレンダラーを設定することはできないので、1つのウィンドウ内に2つの異なる図形(LaTeXラベルと3Dプロットを含む図形)を定義し、各図形ごとに異なるレンダラーを設定します。私はそれを試さなければならないが、明日は多分。 それは可能ですか? – dieterw

+1

@dieterw MATLABの出版品質の数値が必要で、ラインアートとパッチを組み合わせる必要がある場合は、一般に各コンポーネントを別々に作成し、Adobe Illustratorなどのグラフィックスプログラムでそれらを組み合わせる必要があることが分かりました。ここで、後でIllustratorでテキストを直接追加することもできます。 – Marc

+0

非常に有益です。私はラインアートは2Dプロットと同等で、パッチは3Dプロットと等しいと思いますか?私の教授が片面(したがってLaTeXラベル)のパラメータを変更し、反対側の3Dプロットを見ることができるはずの、いくつかのミクロ経済機能のライブデモンストレーションに使用されていることです。 もし私が文書の中に両方を公表するなら、あなたの方法は私が推測する最良の方法でしょう。 – dieterw

関連する問題