Синусоидальные волны

Программа создаёт три цветные волны (розовую, салатовую, голубую), которые плавно движутся на чёрном экране.
Каждая волна состоит из 1000 точек, соединённых линиями для создания плавных изгибов.
Движение волн вычисляется по формуле y = начальная высота + синусная часть + косинусная часть, где синус создаёт основное волнение, а косинус добавляет сложность.
Синусная часть Math.sin(время×6 + x×частота)×амплитуда отвечает за быстрое ритмичное движение точек вверх-вниз.
Косинусная часть Math.cos(время×4.2 + x×половина частоты)×0.3×амплитуда добавляет медленные крупные изгибы, делая волны более реалистичными.
Анимация обновляется 60 раз в секунду, постоянно увеличивая время в формуле, что создаёт непрерывное движение.
При движении мыши волны становятся выше - чем ниже курсор, тем больше амплитуда по формуле новая амплитуда = базовая амплитуда + позиция мыши×100.
На волнах отмечены цветные точки через каждые 10 позиций, помогающие визуально отслеживать движение.
Три волны расположены одна под другой со смещением в 40 пикселей и имеют разную высоту (каждая следующая на 20 пикселей выше).
Эта программа демонстрирует, как простые математические функции могут создавать сложные и красивые анимации в реальном времени с интерактивными элементами.