Формула для нахождения фигур Хладни

  1. Есть фигуры Хладни. В зависимости от частоты звука получаются фигуры из песка, соли и т.д. А. Фигуры Хладни ч.1 Б. Фигуры Хладни ч.2
  2. Как получить общую формулу для нахождения формы фигуры соли (песка) в зависимости от звука? (рис.1)
    • Могёте помочь?

рис.1, "Фигуры Хладни"


Ответы (1 шт):

Автор решения: Stranger in the Q

Вот, пожалуйста, позаимствовал шейдер c (shadertoy), у меня для этого есть своя мини библиотека:

let rgba = new RGBA(`

  const float PI = 3.14159265;
  vec2 p = (2.0 * gl_FragCoord.xy - resolution.xy) / resolution.y;

  vec4 s1 = vec4(1.0, 1.0, 1.0, 1.0);
  vec4 s2 = vec4(-4.0, 4.0, 1.0, 4.6);

  float a = mix(s1.x, s2.x, xy.x);
  float b = mix(s1.y, s2.y, xy.x);
  float n = mix(s1.z, s2.z, xy.y);
  float m = mix(s1.w, s2.w, xy.y);

  float amp = a * sin(PI*n*p.x) * sin(PI*m*p.y) + b * sin(PI*m*p.x) * sin(PI*n*p.y);
  float col = 1.0 - smoothstep(abs(amp), 0.0, 0.1);
  gl_FragColor = vec4(vec3(col), 1.0);

`, {uniforms: {xy: '2f'}});

addEventListener('mousemove', e => rgba.xy([e.x/innerWidth,e.y/innerHeight]))
<script src="https://raw.githack.com/strangerintheq/rgba/0.0.1/src/rgba.js"></script>

http://paulbourke.net/geometry/chladni/

https://thelig.ht/chladni/

→ Ссылка