我试图在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"
答案 0 :(得分: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