RealFlow翻译教程14绘制动态利萨如图形.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
RealFlow翻译教程14绘制动态利萨如图形

动态利萨如图形(Lissajous Figures) 利萨如图形(Lissajous figures,也可以叫利萨如曲线)有一个相关物理的背景,就是用来理解交流电(alternating currents)。这个曲线是是两个沿着互相垂直方向的正弦振动的合成的轨迹。可以使用“点”在2D/3D空间绘制出利萨如图形。“点”的位置由时间控制,就是说需要进行解算,可以用批处理脚本(batch script)模拟这一过程。本文方法可以加速此图形生成,直到生成最终你需要的结果才会输出,而不是每一帧输出一个BIN文件。如果每帧生成可能会产生成百上千个文件。 维基百科定义:HYPERLINK /wiki/Lissajous-Figur/wiki/Lissajous-Figur (有中文的简要词条,注意切换) 本教程提供的的脚本是完美的解决方案:基于时间生成,使用不同的设置,会产生有趣的效果。Lissajous Figures可探讨范围几乎是无限的,因为时间没有边界和极限的。Lissajous figure可以在示波器上看到,振荡曲线,钟摆曲线,甚至绘制圆柱体。 如果提前想提前感受一下绘制利萨如图形的趣味,可以到这个网站:HYPERLINK http://www.phy.hk/wiki/chinesehtm/Lissajous.htmhttp://www.phy.hk/wiki/chinesehtm/Lissajous.htm 本教程,提供了一个如何以批处理方法创造很炫的效果。请注意这是为RealFlow5写的脚本,对于老版本只要进行一下小小改动就可以了。 上图是动态的绘制过程 最重要的任务是找到创建Lissajous Figures的合适函数。你可以在网上随便搜索一下,会发现很多网页有这个公式。适当的表达式是这样的: 上图为维基百科的参数方程截图 t - Ax * sin( ω1 * t + ρ1 ) t - Ay * sin( ω2 * t + ρ2 ) 但写成上面这样,容易转换成脚本。可以从公式看出绘制出的图形与时间t紧密相关:每个时间步长 t,脚本计算公式 A * sin( ω * t + ρ ),这在每个轴都会计算。正如你看到的,这个公式只考虑x和y轴方向。而我们目的是绘制三维图。解决方法是很简单的,因为只要把这个公式 加一项,就能求得 Z轴: t - Az * sin( ω3 * t + ρ3 ) 决定最后图形尺寸大小的值是 A,A越大结构就变得越大 下一步是找出 ω 和 ρ 的意思。他们读作“Omega(o`miga欧米伽)”和“Phi(佛爱φ,应该写成这样)”他们决定图的样子。ω 是频率, ρ是相位(phase)。因为在这里要处理震荡(oscillation),这两个参数是必须的的。频率是指在一定时间内(=向上/向下运动)发生的数量。越高的频率,就会有更多的波峰和波谷。(这些就是简单的正弦曲线传达的概念HYPERLINK /blog/static/12036582201252851854952//blog/static/12036582201252851854952/ 这篇文章有一段,详细介绍了频率相位这些概念) 图1.在二维空间不同的 Lissajous figure示例。 相位,ρ,不太容易解释。根据定义,它是振荡状态随时间变化与起始值的距离。简明的说来,就是Lissajous figure 整体外观的偏移。 依据时间的批处理脚本(Batch Scripts) 使用模拟事件(simulation),我们不会碰到任何关于时间(time)的问题,因为每个模拟步长或帧,可看作时间的流逝。在批处理脚本中不会这么自动,因为这个脚本类型不是基于任何模拟或事件。因此,时间可被考虑成一个无限的序列,在每一步添加一定值。在计算机模拟中,甚至可以用负的时间值。但关键是,使用负时间真的能产生一些新的结果或图形吗? 实际上可以创建一个循环,让计数器在每一步加1。粒子数也需要循环来定义,你最后就可以控制图片的“分辨率”了(一张图形,有运行时间越长,粒子数越就可能会越清晰。这是一种比拟)。 正如您所了解到,从ρ定义你需要一些初始值。这是必要的,因为新的时间步是基于之前那个的。这个思路来自于分形(fractals)(详细了解分形请参考文章:分形艺术HYPERLINK /blog/static/12036582201301542931932//blog/static/12036582201301542931932/ )。你需要让时间初始值要大于或等于0,因为没有“负”的时间。 time = 0 step = 0.025 for i in range(0,2000,1): time = time + s

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档