标题基本上是这样说的。我想以类似于的形式绘制样本 下面的立方体:
// Front
0 0 0
0 0 1
1 0 1
1 0 0
// Back
0 1 0
0 1 1
1 1 1
1 1 0
// Left
0 0 0
0 1 0
0 1 1
0 0 1
// Right
1 0 0
1 1 0
1 1 1
1 0 1
// Bottom
0 0 0
1 0 0
1 1 0
0 1 0
// Top
0 0 1
1 0 1
1 1 1
0 1 1
我并不局限于任何特定程序,但我认为可以使用gnuplot来完成它。你会怎么做? (当然我试图自己找到它,但我是一个gnuplot noob而且gnuplot太大而无法直接找到答案)
答案 0 :(得分:0)
我不得不重新安排你的数据文件:
#front
0 0 0
0 0 1
1 0 0
1 0 1
#back
0 1 0
0 1 1
1 1 0
1 1 1
#left
0 0 0
0 1 0
0 0 1
0 1 1
#right
1 0 0
1 1 0
1 0 1
1 1 1
#bottom
0 0 0
1 0 0
0 1 0
1 1 0
#top
0 0 1
1 0 1
0 1 1
1 1 1
然后可以用:
绘制set pm3d depthorder
splot "datafile.dat" u 1:2:3:-2 w pm3d
虽然这很有用(大多数情况下 - 按照深度顺序排序在gnuplot中并不完美),但做更复杂的形状会很快变得乏味。
基本上,它的工作原理是因为我在数据文件中分别指定了每个四边形(在这种情况下为方形) - 四边形由2个空行分隔。每个正方形由4个顶点组成,按2“扫描排序。因此,第一次扫描从点(0,0,0)到(0,0,1)。然后下一次扫描从(1,0, 0)到(1,0,1)。然后Gnuplot将扫描连接在一起。
使用这种技术,你也可以制作三角形(三角形只是最后两个点相同的四边形;)。
最后,每个表面的着色由pseudo-column
“-2”完成 - 这实际上只是四边形数。您可以在数据文件中添加第四个字段,并根据需要将其用于颜色。
然而,我有一种感觉,使用gnuplot的这个解决方案并不是你真正想要的,因为这种东西并不是gnuplot的设计目的 - 可能有一个工具可以做到这一点更容易 - 我只是不知道它是什么。