En este proyecto desarrollado en Processing, se estudia el movimiento de diferentes ondas en una superficie. Esta superficie se ha generado usando una matriz de nodos los cuales serán los que determinemos su posición con una serie de Ondas, las cuales son de 3 tipos: Direccionales o Sinusoidales, Radiales y Gerstner. La estructura de la superficie se basará en un mapa de alturas.

Ondas Direccionales

Este tipo de onda es la más básica. La expresión matemática de esta Onda es la siguiente:

$$ f(x, y) = A · \sin( w · (D · P) + \varphi · t) $$

Siendo A la Amplitud máxima de la onda, w la frecuencia angular, D el vector dirección de propagación, P el punto del mapa de alturas, phi la fase y t el instante de tiempo.

Ondas Radiales

Estas ondas son similares a las ondas direccionales, pero no se propagan en una dirección determinada si no que parten de un punto determinado de la superficie.

La expresión matemática de esta Onda es la siguiente:

$$ f(x, y) = A · \sin( w · (D - P) + \varphi · t) $$

Siendo A la Amplitud máxima de la onda, w la frecuencia angular, D el punto de origen de la onda, P el punto del mapa de alturas, phi la fase y t el instante de tiempo.

Ondas Gerstner

Estas ondas intentan aportar un poco más de realismo al movimiento de la superficie. Para hacerlo, en lugar de simplemente calcular la altura de un punto, este también sufrira un desplazamiento en los otros dos ejes.

Este movimiento está definido por la siguiente expresión:

$$ P(x, y, z) = \begin{pmatrix} x + (A · Q · D_{x} · \cos{(w · (D · (x, y)) + \varphi · t)})\\ y + (A · Q · D_{y} · \cos{(w · (D · (x, y)) + \varphi · t)})\\ A · \sin{(w · (D · (x, y)) + \varphi · t)} \end{pmatrix} $$

Siendo A la Amplitud máxima de la onda, Q la constante de Gerstner,w la frecuencia angular, D el punto de origen de la onda, P el punto del mapa de alturas, phi la fase y t el instante de tiempo.