在gnuplot中为线条之间的表面着色

时间:2015-11-21 19:27:31

标签: gnuplot

我在gnuplot中制作3D图。我绘制了三条在空间中形成三角形的线条。有没有办法填充它们形成的三角形的颜色?

set style line 6 lc rgb 'green' pt 7 ps 6  dt (2,4,2,4) lw 2

set arrow from -0.6666666666666666, 0.3333333333333333, 1.7040257344605167 to 0.20784800000000003, 0.36612, 0.4082358795271838 nohead ls 6
set arrow from 0.20784800000000003, 0.36612, 0.4082358795271838 to 0.3333333333333333, 0.6666666666666666, 0.6085806194501847 nohead ls 6 

set arrow from 0.20784800000000003, 0.36612, 0.4082358795271838 to -0.3333333333333333, 0.6666666666666666, 0.8520128672302584 nohead ls 6 

1 个答案:

答案 0 :(得分:1)

您可以在gnuplot中定义多边形(您可以为其定义填充样式)。这可能会解决您的问题:

set object 1 polygon from \
    x1, y1, z1 to \
    x2, y2, z2 to \
    x3, y3, z3 to \
    x1, y1, z1

set object 1 fc rgb '#000000' fillstyle solid lw 0

这是一个工作示例(包括您的箭头)。 (我不得不修改坐标以获得一个封闭的三角形):

set style line 6 lc rgb 'green' pt 7 ps 6  dt (2,4,2,4) lw 2
x1=-0.6666666666666666
y1=0.3333333333333333
z1=1.7040257344605167
x2=0.20784800000000003
y2=0.36612
z2=0.4082358795271838
x3=0.3333333333333333
y3=0.6666666666666666
z3=0.6085806194501847
set arrow from x1, y1, z1 to x2,y2,z2 nohead ls 6
set arrow from x2,y2,z2 to x3,y3,z3 nohead ls 6 
set arrow from x3,y3,z3 to x1, y1, z1 nohead ls 6 

set object 1 polygon from \
    x1, y1, z1 to \
    x2, y2, z2 to \
    x3, y3, z3 to \
    x1, y1, z1

set object 1 fc rgb '#000000' fillstyle solid lw 0

set xrange[-1:1]
set yrange[-1:1]
set zrange[-1:1]

splot -10:-10:-10

输出如下所示:enter image description here