首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图形:交互式3D动画?

图形:交互式3D动画?
EN

Stack Overflow用户
提问于 2019-04-05 22:48:02
回答 1查看 651关注 0票数 0

使用gnuplot,您可以使用splot创建一个类似3D的绘图,并以交互方式更改视图。

您还可以使用set terminal gif animate创建带有gnuplot的动画。

代码语言:javascript
复制
### interactive animation?
reset session
set view equal
set border 0
unset tics

$Data <<EOD
1   1.000   0.000   0.000
2   0.500   0.866   0.000
3   -0.500  0.866   0.000
4   -1.000  0.000   0.000
5   -0.500  -0.866  0.000
6   0.500   -0.866  0.000
1   1.000   0.000   0.000
EOD

$Off <<EOD
1   0.00    0.00    0.1
2   0.00    0.00    -0.1
3   0.00    0.00    0.1
4   0.00    0.00    -0.1
5   0.00    0.00    0.1
6   0.00    0.00    -0.1
1   0.00    0.00    0.1
EOD

set xrange[-2:2]
set yrange[-2:2]
set zrange[-2:2]
set view 45,45
max=10.
Offset(n,axis,i) = real(word($Off[n+1],axis+1))*sin(2*pi*i/max)

set term gif animate delay 5 size 400,300
set output "Molecule.gif"

do for [i=0:max] {
    splot $Data u ($2+Offset($0,1,i)):($3+Offset($0,2,i)):($4+Offset($0,3,i)) \
    w lp pt 7 ps 2 lw 2 lc rgb "red" not
    unset autoscale
}

set term wxt size 400,300
set margin 0
splot $Data u 2:3:4 w lp pt 7 ps 2 lw 2 lc rgb "red" not
set output
### end of code

现在,我的问题是:是否也有机会创造互动动画?我想在视图是动画的时候旋转它。这有可能和侏儒情节有关吗?有什么想法吗?

编辑:

@Ethan的回答解决了这个问题。但是,是否有办法避免鼠标光标的闪烁?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-05 23:42:22

将绘图命令放入循环中并不会禁用鼠标交互。简单的答案应该有效:

代码语言:javascript
复制
set xrange[-2:2]
set yrange[-2:2]
set zrange[-2:2]
set view 45,45
Offset(n,axis,i) = real(word($Off[n+1],axis+1))*sin(2*pi*i/max)

# Loop forever
# but allow an explicit end condition triggered by a hot key
done = 0
bind "d" "done = 1"

while (!done) {
  do for [i=0:10] {
    splot $Data u ($2+Offset($0,1,i)):($3+Offset($0,2,i)):($4+Offset($0,3,i)) \
    w lp pt 7 ps 2 lw 2 lc rgb "red" not
    pause 0.1
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55544238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档