3D彩色表面

时间:2020-05-16 17:01:34

标签: gnuplot

我是GNUPLOT的忠实粉丝,它并没有使我失望。通常我只是画2D图形,因为我在热力学中处理的现实是多维的,而使用3D并没有真正的帮助。但是我发现了一种情况,我想制作一个带有彩色平面的3D图,但我却无法处理。一个简单的例子是:

set terminal wxt size 840,700 font "Arial,16"
set origin 0.0, 0.0 
set size   1.0000,   1.0000
set xlabel "X"
set ylabel "Y"

set style line 1 lt  1 lc rgb "#FF0000" lw 2
set style line 2 lt  1 lc rgb "#00FF00" lw 2

splot "-" using 1:2:3 with lines ls 1 notitle,\
"" using 1:2:3 with lines ls 2 notitle
0 1 0
0 1 1
1 0 1
1 0 0
0 1 0

e
0 0 0
0 1 0
1 1 0
1 0 0
0 0 0

e

pause mouse

绘制一个红色和绿色的矩形。但是,我希望矩形的内部为红色或绿色。在2D中,我可以使用“ filledcurves”,但它似乎在3D中不起作用。我已经看到了如何生成带有颜色的复杂表面的示例,但我只需要一个彩色的平面即可。在3D环境中也应该有一种简单的方法。

1 个答案:

答案 0 :(得分:3)

set object 1 polygon from 0,1,0 to 0,1,1 to 1,0,1 to 1,0,0 to 0,1,0
set object 1 fillstyle transparent solid 0.5 fillcolor "red"

set object 2 polygon from 0,0,0 to 0,1,0 to 1,1,0 to 1,0,0 to 0,0,0
set object 2 fillstyle transparent solid 0.5 fillcolor "dark-green"

set xrange [0:1]; set yrange [0:1]; set zrange [0:1]
set xyplane 0

splot -1 notitle  # this is out of range so it won't show

将矩形描述为50%透明的原因是gnuplot中的隐藏曲面算法仅针对曲面设计;它不能细分任意对象,因此不能正确呈现一个实体对象被另一个实体对象部分遮挡的情况。
enter image description here