模拟海水: http://www.finelightvisualtechnology.com/docs/coursenotes2004.pdf
我正在尝试模拟海洋,我需要你的帮助。 请耐心等待,我是计算机图形学的新手,但我知道物理和数学的基础知识。如您所见,我需要计算公式:
k 是一个向量, x 是一个坐标(所以我建议它可以等于向量?)。
所以,第一个问题: 如何计算 e 这种奇怪的东西的力量?
其次,它表示h( x ,t)是高度,并且还要获得进行FFT所需的值。我无法理解。
答案 0 :(得分:2)
可以用sin和cos波来计算虚构的力量
wikipedia entry for e
和vector exponentiation也有自己的页面
matrix exponential
答案 1 :(得分:2)
该等式表示每个xy位置(由 x )h( x ,t)表示的波高的多维傅里叶变换为a具有幅度h~( k ,t)的复指数之和。请注意,被取幂的是点积, k · x ,它具有标量结果。这意味着你正在对一个复数进行取幂,这可以通过使用Euler的正弦和余弦公式轻松完成,如另一篇文章所述。至于实际计算h~,你需要在包含h数据的二维数组上使用多维FFT。我相信你可以使用普通的一维FFT来计算它,但在维基百科上查看如何做到这一点。当你开始使用你的FFT例程时,看看在你的库中使用的数学表示式(即1 / N)之外,将哪些系数放在总和之外,并对其进行校正。
答案 2 :(得分:0)
如果x是坐标(bidimensional?),您可以使用Point类。 Sum中的内容应转换为循环并在k上迭代计算。
FFT是傅立叶变换,搜索Cooley-Tukey算法以快速计算它。