1

我正在尝试在 gnuplot 的帮助下用文件中给出的 X、Y、Z、R 绘制一个球体。

sphere1.dat:

# X     Y      Z       R
219.3  342.5  3153.2  213.08

在大多数示例中,球体都是这样绘制的:

set parametric
set angle degree
set urange [0:360]
set vrange [-90:90]
set isosample 72,36
splot cos(u)*cos(v),sin(u)*cos(v),sin(v)

有没有办法将 u,v 值与文件中的值结合起来?像这样的东西:

set angle degree
set urange [0:360]
set vrange [-90:90]
set isosample 72,36
splot 'sphere1.dat' using ($4*cos(u)*cos(v)+$1):($4*sin(u)*cos(v)+$2):($4*sin(v)+$3) title "Sphere1"
4

1 回答 1

1

您可以使用 tail 和 awk 从数据文件中获取 x,y,z,r。

tail -1 data

打印最后一行数据

awk '{print $i}'

返回行的第 i 个空格分隔的部分

x = "`tail -1 sphere1.dat| awk '{print $1}'`"
y = "`tail -1 sphere1.dat| awk '{print $2}'`"
z = "`tail -1 sphere1.dat| awk '{print $3}'`"
r = "`tail -1 sphere1.dat| awk '{print $4}'`"

set parametric
set angle degree
set urange [0:360]
set vrange [-90:90]
set isosample 30,30
splot r*cos(u)*cos(v)+x,r*sin(u)*cos(v)+y,r*sin(v)+z
于 2013-04-03T11:49:07.787 回答