4

Octave 3.4.0 を実行していて、透明な表面プロットを作成したいと考えています。ただし、 、 、およびをいじるとfacealpha、そうすることができませんでした。edgealphaalphadataalphadatamapping

不透明な表面を作成するためのコード例:

p = peaks(40);
f1 = figure(10);clf
s1 = surface(p)
view(3)
xlabel('x');ylabel('y');
hold on;plot3([0 40],[40 0],[-10 10],'k')
set(s1,'edgecolor','none')
set(s1,'facealpha',0.2)

この結果を下の画像に示します。ご覧のとおり、最初に斜めに描かれた線は、サーフェスが半透明であると想定されているにもかかわらず、サーフェスの後ろに隠れています。これは私のバージョンの Octave のバグですか、それとも何か見落としているのでしょうか?

ここに画像の説明を入力

4

3 に答える 3

3

これは、gnuplot をグラフィック ツールキットとして使用する Octave 3.6.2 で動作します。そのため、Octave のインストールをより適切にアップグレードしてください。

ただし、次の 2 つの点に注意してください。

  1. 表面の後ろにある対角線の部分はライターで描かれていないので、まだ奇妙に見えます。
  2. 新しい実験的な fltk グラフィック ツールキットでは、まったく機能しません。
于 2012-08-22T14:13:04.623 に答える
3

私は Vidar に同意します: 彼のコードは最新の Octave 3.8.1 (Cygwin 1.7.30(0.272/5/3) setup_x86_64.exe:2.850 xterm 305-1 Gnuplot 4.6.3-3) では動作しません。facealpha はより明るい色のサーフを作成します。ただし、1 つの回避策としてmesh、オクターブのコマンドには面を破棄する機能があります: hidden( manual )。

そう

p = peaks(40);
f1 = figure(10);clf
s1 = mesh(p)
view(3)
xlabel('x');ylabel('y');
hold on;plot3([0 40],[40 0],[-10 10],'k')
hidden('off')

生産する

コード出力

于 2014-06-11T21:53:57.140 に答える