Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GNUPlot:设置由三个点定义的平面的动画_Gnuplot - Fatal编程技术网

GNUPlot:设置由三个点定义的平面的动画

GNUPlot:设置由三个点定义的平面的动画,gnuplot,Gnuplot,所以我需要画出由三个点定义的平面,这三个点都来自于我的方程。我可以重新定义代码,使三个点之间有一个空格。我选择不这样做。我只是添加了一些评论,以明确各点的分歧。他们真的不在那里 # surface 1 1.000 0.000 0.000 -46.777 -0.702 -1.692 0.000 3.000 5.500 # surface 2 0.998 0.

所以我需要画出由三个点定义的平面,这三个点都来自于我的方程。我可以重新定义代码,使三个点之间有一个空格。我选择不这样做。我只是添加了一些评论,以明确各点的分歧。他们真的不在那里

# surface 1
   1.000          0.000          0.000
 -46.777         -0.702         -1.692
   0.000          3.000          5.500
# surface 2
   0.998          0.030          0.055
 -46.451         -2.099         -5.068
  -0.468          2.993          5.483
# surface 3
   0.991          0.060          0.110
 -45.804         -3.471         -8.400
  -0.932          2.972          5.432
# surface 4
   0.979          0.089          0.164
 -44.842         -4.803        -11.659
  -1.390          2.937          5.348
# surface 5
   0.963          0.119          0.217
 -43.574         -6.079        -14.816
  -1.839          2.889          5.232
#... and so on
现在我可以用这个代码绘制一个曲面

set dgrid3d 10,10
set style data lines
set pm3d 
i=0
splot '5surf' every ::i::(i+2) pal
但当我把它插入do循环时

n =         1000
unset key

set terminal gif size 800,600 crop
outtmpl = 'pic/output%07d.gif'

set dgrid3d 10,10
set style data lines
set pm3d 

do for [i=0:n:3] {
set output sprintf(outtmpl, i)
splot '5surf' every ::i::(i+2) pal
print i
}
set output
我用这个得到了曲面,这显然是错误的。(双关语)

根据我的分析,表面看起来有点像是在旋转


编辑:我把dgrid3d扔出了窗口。填充曲线不起作用。我能用这些点画一个正方形

1 1 4.8
-1 1 5.6
-1 -1 2.4
1 -1 1.6
1 1 4.8
使用多边形,但我无法使其从文件中读取



最后一次编辑:如果有人对我如何使用原始的三个点集找到这四个点感到好奇,那就是找到包含这三个点的平面方程并插入(\pm 1、\pm 1,z)。求解Z,并考虑这四种情况。一个基本的计算问题,实际上

对于正方形的点,您还必须插入一条空行,以使
pm3d
正常工作:

surface.dat

-1 -1 2.4
-1 1 5.6

1 -1 1.6
1 1 4.8
-1 -1 2.4
-1 1 5.6

1 -1 1.6
1 1 4.8


-1 -1 1.4
-1 1 4.6

1 -1 0.6
1 1 3.8
不是,两个块的y值顺序始终相同。将此与

set pm3d
splot 'surface.dat' 

如果要从一个文件中放置多个曲面,现在可以用两条空行分隔两个曲面,然后可以使用
索引

surfaces.dat

-1 -1 2.4
-1 1 5.6

1 -1 1.6
1 1 4.8
-1 -1 2.4
-1 1 5.6

1 -1 1.6
1 1 4.8


-1 -1 1.4
-1 1 4.6

1 -1 0.6
1 1 3.8
您可以使用
stats
来计算块数:

stats 'surfaces.dat' nooutput
set pm3d
do for [i=0:STATS_blocks - 1] {
    splot 'surfaces.dat' index i
}

dgrid3d
无法正常用于您的应用程序。你可能应该计算出四个点,这四个点应该划定你想要绘制的平面。好的,我也有这个方程。我试了四分,但我得到的只是一个盒子。现在我需要用一些纯色来填充它以保持可见性,当我尝试pm3d时,它说没有足够的信息来显示它。有没有办法为所有迭代设置颜色?我让do循环开始工作,但一旦“坡度”发生足够的变化,颜色就会发生变化如果您希望所有平面都有一种颜色,那么您应该定义一个只有这种颜色的调色板:
set palete defined(0'#bb0000',1'#bb0000');取消设置颜色框