Octave 在倍频程上设置曲面图的透明度

Octave 在倍频程上设置曲面图的透明度,octave,Octave,我正在运行Octave 3.4.0,希望创建一个透明曲面图。然而,在处理facealpha、edgealpha、alphadata和alphadatamapping时,我无法做到这一点 创建不透明曲面的示例代码: 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

我正在运行Octave 3.4.0,希望创建一个透明曲面图。然而,在处理facealpha、edgealpha、alphadata和alphadatamapping时,我无法做到这一点

创建不透明曲面的示例代码:

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 3.6.2上,我使用gnuplot作为图形工具包。所以你最好升级你的倍频程安装

但有两点需要注意:

表面后面的对角线部分没有用打火机画出来,所以看起来仍然很奇怪; 在新的实验性fltk图形工具包中,它根本不起作用。
我同意维达的观点:他的代码不适用于最新的八度音阶3.8.1 Cygwin 1.7.300.272/5/3 setup_x86_64.exe:2.850 xterm 305-1 Gnuplot 4.6.3-3。facealpha只是使冲浪的颜色更浅。然而,一个解决办法是,八度音阶中的mesh命令有一个丢弃面的功能:隐藏

所以

产生


这实际上在Octave 5.1.0中对我有效,但是命令的顺序很重要。在绘制直线之前,需要设置alpha。自己尝试曲面并使用alpha-它可以工作:

>> s1 = surface(p)
s1 = -2.7876
>> view(3)
>> set(s1,'facealpha',0.5)
>> colormap jet
>> grid on; % so you can see the grid through the transparent surface:

你能提交一份bug报告吗?完成:2009年的一条评论说它已修复:2011年的一条评论说它不受支持:我的经验表明它仍然不起作用。。。
>> s1 = surface(p)
s1 = -2.7876
>> view(3)
>> set(s1,'facealpha',0.5)
>> colormap jet
>> grid on; % so you can see the grid through the transparent surface: