如何格式化.dat文件,以便可以绘制3D矢量图?

| 我正在上大学的这项编程任务,我们必须编写一个
c++
程序来计算3D空间中某些线圈的磁场矢量。 我已经成功编写了该程序,并且我认为它运行得很好。 不过,我想添加一个特殊的命令(这是我的考试卷,因此必须特别好!):我不想将向量绘制出来。 我习惯从
c++
(通过管道调用)中调用
gnuplot
,这是我通常要做的: 创建将数据写入
.dat
文件的输出流 打开一个gnuplot管道 使gnuplot绘制ѭ3的所有内容 由于我的数据一直是2D,
x
y
图,因此我在这里很迷失。我的问题是: 如何格式化
.dat
文件(例如,我是否使用花括号对矢量分量进行分组?) 绘制3D矢量场的实际gnuplot命令是什么? 如果可以像这样格式化
.dat
文件,那将很容易:
# Px    Py    Pz    Bx    By    Bz
  1     0     2     0.7   0.5   0.25 #<= example data line
  ... more data ...
当点vector10处的磁场矢量等于vector11时。这将很容易编程,真正的问题是:这样可以吗?以及如何在gnuplot中绘制它。 (哇,我猜过3次相同的问题)。 管道到gnuplot 好的,因为有人要我描述我如何将(不知道这是否是正确的术语)东西塞入
gnuplot
。这里是: 首先打开管道,并将其命名为
pipe
FILE *pipe = popen(\"gnuplot -persist 2>/dev/null\", \"w\");
告诉
gnuplot
通过管道进行的操作:
fprintf(pipe, \"set term x11 enhanced \\n\");
fprintf(pipe, \"plot x^2 ti \'x^2\' with lines\\n\");
注意绝对必要的the17。它是执行命令的地方。 关闭管道:
pclose(pipe);
我相信必要的库称为ѭ19。     
已邀请:
我做了一个简单的示例,向您展示如何绘制矢量场。输出将如下图所示: 我用来绘制此图的数据示例是:
# Px    Py    Pz    Bx    By    Bz
  0     0     0     0.8   0.8   0.45
  0     0     1     0.5   0.7   0.35
  0     0     2     0.7   0.5   0.25
  0     1     0     0.65   0.65   0.50
  0     1     1     0.6   0.6   0.3
  0     1     2     0.45   0.45   0.20
  1     0     0     0.5   0.7   0.35
  1     0     1     0.75   0.75   0.4
  1     0     2     0.85   0.85   0.25
  1     1     0     0.90   0.85   0.23
  1     1     1     0.95   0.86   0.20
  1     1     2     0.98   0.88   0.13
  2     0     0     0.73   0.83   0.43
  2     0     1     0.53   0.73   0.33
  2     0     2     0.73   0.53   0.23
  2     1     0     0.68   0.68   0.52
  2     1     1     0.63   0.57   0.23
  2     1     2     0.48   0.42   0.22
绘制它的命令是:
gnuplot> splot \"./data3d.dat\" with vectors
现在,您应该阅读官方手册第53页第44节(此处为pdf)。您可能会发现此站点也非常有用。 编辑: 该命令不符合您的描述:映射
from (x,y,z) to (t,u,v)
。它实际上执行以下映射:mapping23ѭ。 干杯, 贝科     

要回复问题请先登录注册