Как stk :: SineWave вычисляет синус?

Я новичок в C ++, и я пытаюсь понять Класс SineWave из набора инструментов для синтеза. описание говорит:

This class computes and saves a static sine "table" that can be shared by multiple instances. It has an interface similar to the WaveLoop class but inherits from the Generator class. Output values are computed using linear interpolation.

Итак, я думаю, что это не вычисляет синус вообще? Если он использует линейную интерполяцию между верхней и нижней точками синусоидальной волны, разве это не треугольная волна? Может кто-нибудь объяснить, что делает расчет?

0

Решение

Если вы посмотрите на реализация, вы увидите, что конструктор рассчитывает sin на полигоне 0.0 в 1.0 по шагам 1.0 / TABLE_SIZE, где TABLE_SIZE является 2048 по умолчанию. Затем выполняется линейная интерполяция между этими значениями. Это близко приближает функцию синуса.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]