如何绘制彼此相交的两个曲面

时间:2015-07-21 14:36:10

标签: gnuplot

我一直在尝试使用gnuplot从数据集中制作三维曲面图。我使用以下代码取得了部分成功:

set view 65,45
unset colorbox
set lmargin 14
set pm3d depthorder nohidden3d
set ylabel "angles [deg]"
set zlabel offset -2,0 "energy [eV]"
set palette defined (0 'blue', 1 "blue", 3 "blue", 4 'red')
splot "S1.dat" u 1:2:3:4 w pm3d  ti "S1", "T2.dat" u 1:2:3:4 w pm3d ti "T2"

会产生以下图像:

image1

问题是,两个表面之间的边界区域(“接缝”)不清晰可见,因为瓷砖仅用一种颜色着色。为了使事情更清楚,这是我在没有pm3d(有或没有hidden3d)的情况下获得的:

set terminal png size 800,800
set output "testimg2.png"
set view 65,45
unset colorbox
set lmargin 14
set isosamples 19,44
set hidden3d
set ylabel "angles [deg]"
set zlabel offset -2,0 "energy [eV]"
set palette defined (0 'blue', 1 "blue", 3 "blue", 4 'red')
#splot "S1.dat" u 1:2:3:4 w pm3d  ti "S1", "T2.dat" u 1:2:3:4 w pm3d ti "T2"
splot "S1.dat" u 1:2:3 w l lc rgb "blue"  ti "S1", "T2.dat" u 1:2:3 w l lc rgb "red" ti "T2"
unset hidden3d
set output "testimg3.png"
splot "S1.dat" u 1:2:3 w l lc rgb "blue"  ti "S1", "T2.dat" u 1:2:3 w l lc rgb "red" ti "T2"

image 2 (hidden3d)

image 3 (no hidden3d)

基本上我想要的是像我的第二张图片,你可以清楚地看到表面之间的边框,但是用填充的瓷砖。

我见过的最接近的是下页的图3:

http://www.gnuplotting.org/klein-bottle/

您可以在哪里看到瓶子与手柄的接触位置。

有人可以帮忙吗?如果使用gnuplot无法做到这一点,那么有人可以建议替代方案吗?

1 个答案:

答案 0 :(得分:0)

要在 3d 中绘制 2 个平面,请输入 z 的函数,逗号分隔,例如

plane 1: 4x+2y+2z = 12
plane 2: -3x-2y+8z = 12
gnuplot> splot (-4*x-2*y+12)/2, (3*x+2*y+12)/8

plot of 2 planes