从二进制数据文件中绘制三角形

Splot triangles from binary data file

我有一个二进制文件 binary format='%float32%float32%float32',具有 D3 点 (using 1:2:3)。最初逻辑上点按 3 分组形成三角形。我想使用 with lines 将三角形的腿绘制为一条线。在 ASCII 数据文件中,我可以通过在三行之间添加一个空行来制作所谓的 datablocks,但在二进制文件中我不能。我想在每三个点打断一连串的线,以形成三角形轮廓的至少 V 形部分。

是否可以选择 gnuplot 将点的三元组视为单独的 数据块

是否有另一种选择 splot 数据作为(可能)实心三角形?

我仍然不确定我是否完全走在正确的轨道上。 下面的代码将您的二进制数据写入 table 并为一个三角形制作一组 3 个数据点,插入一个空行然后为下一个三角形移动一个。 所以,所以从分p1=f1,f2,f3p2=f4,f5,f6; p3=f7,f8,f9; ...它创建三角形 p1p2p3p1 p2p3p4p2 p3p4p5p3(space=空行)。

当然,(内存)效率不是很高,但也许这更接近您的最终目标。 检查 help pm3dhelp hidden3d,在那里您可能会获得一些额外的信息。 非常希望有更好的办法。

代码:(假设是二进制文件'myBinary.bin',不确定我是否正确解码了你的ASCII字符串)

# plot binary data
reset session

# put binary data into a datablock
set table $Data
    plot 'myBinary.bin' u 1:2:3 binary format='%float32%float32%float32' skip=12 w table
unset table

# separate each triangle by an empty line
set print $Data2
    do for [i=1:|$Data|-2] {
        print $Data[i]
        print $Data[i+1]
        print $Data[i+2]
        print $Data[i]
        print ""          # insert empty line
    }
set print
set pm3d hidden3d
set view 40, 24

splot $Data2 u 1:2:3 w pm3d notitle
### end of code

结果: