Comments 22
визуализация для музыкального плеера
не нужна.
Как-то странно он реагирует на музыку.
Теперь и на JS можно легко создавать визуализации, с помощью Web Audio API (пока только для Chrome).
Написал небольшой пример.
Написал небольшой пример.
<Комментарий удален, потому что я промахнулся топиком>
А можете пояснить, что считается в этих строках:
?
var originalN: Number = (radius / r - phi) / (Math.PI * 2.0);
var n: Number = Math.min(Math.floor(originalN), Math.ceil(originalN));
phi += n * Math.PI * 2.0;
var cx: Number = xcoord / (Math.cos(phi) / phi);
var cy: Number = ycoord / (Math.sin(phi) / phi);
?
На самом деле в исходном коде немного другие обозначения коэффициентов, для более понятных имен.
radius — это на самом деле коэффициент «a».
Так что:
originalN — это текущий виток спирали; (как я пришел к такому вычислению я уже не помню, но помню, что это было мучительно :))
n — можно заменить на Math.floor(originalN); это я что-то недосмотрел;
phi — угол который должен быть на определенном витке. Получается такая штука, здесь угол в 10 градусов не тоже самое, что угол в 370 градусов, т.к. угол еще используется в знаменателе вне тригонометрических функций.
cx, cy — из уравнения спирали это коэффициент «a».
В итоге ширина спирали основывается на разнице этих самых «a». Говоря проще, для каждой точки вычисляется спираль по заданному параметру «a» и если она «похожа» на спираль которая нам нужна, то мы в этой точке вычисляем смещение.
radius — это на самом деле коэффициент «a».
Так что:
originalN — это текущий виток спирали; (как я пришел к такому вычислению я уже не помню, но помню, что это было мучительно :))
n — можно заменить на Math.floor(originalN); это я что-то недосмотрел;
phi — угол который должен быть на определенном витке. Получается такая штука, здесь угол в 10 градусов не тоже самое, что угол в 370 градусов, т.к. угол еще используется в знаменателе вне тригонометрических функций.
cx, cy — из уравнения спирали это коэффициент «a».
В итоге ширина спирали основывается на разнице этих самых «a». Говоря проще, для каждой точки вычисляется спираль по заданному параметру «a» и если она «похожа» на спираль которая нам нужна, то мы в этой точке вычисляем смещение.
Заинтересовало вычисление витка спирали :)
radius — это максимальный радиус спирали?
radius — это максимальный радиус спирали?
Это некий коэффициент скорости расхождения спирали, в принципе он сопоставим с максимальным радиусом.
Тогда как можно было бы понять его геометрический смысл? Вы уже не помните общий ход рассуждений?
Считайте это коэффициентом масштабирования. При изменении этого коэффициента, спираль не меняет свою структуру.
Из вот этого предела:

и более наглядного рисунка:

видно, что спираль растет не вечно. Поэтому коэффициент «a» это по сути максимальная высота(по y) спирали, а значит и радиус за пределами которого, приращение угла очень быстро phi -> 0
Из вот этого предела:

и более наглядного рисунка:

видно, что спираль растет не вечно. Поэтому коэффициент «a» это по сути максимальная высота(по y) спирали, а значит и радиус за пределами которого, приращение угла очень быстро phi -> 0
Наверное, не суждено мне понять :(
Попытаюсь еще раз:
var r: Number = Math.sqrt(xcoord * xcoord + ycoord * ycoord);
если xcoord и ycoord — расстояние от центра до текущей точки по каждой из осей координат, то r — гипотенуза в прямоугольном треугольнике
Что скрывается под radius / r? Почему из этого вычитается угол?
Попытаюсь еще раз:
var r: Number = Math.sqrt(xcoord * xcoord + ycoord * ycoord);
если xcoord и ycoord — расстояние от центра до текущей точки по каждой из осей координат, то r — гипотенуза в прямоугольном треугольнике
Что скрывается под radius / r? Почему из этого вычитается угол?
Нужно было перейти сюда Гиперболическая спираль и посмотреть формулы.
radius в данном контексте это a. Соответственно в полярных координатах a/r = phi
radius в данном контексте это a. Соответственно в полярных координатах a/r = phi
Я просмотрел формулы. Не понимаю, почему radius === a. Если так, то radius / r — phi = 0
Я же раньше писал, замените название radius на a. Я уже сам запутался.
a/r = phi это phi не равняется phi который считается для каждой точки
a/r = phi это phi не равняется phi который считается для каждой точки
То есть в случае с radius/r мы получаем угловую координату самой спирали, а в случае расчета для конкретной точки — ее угловую координату. Осталось понять, как разность этих двух координат дает нам конкретный виток.
SecurityError: Error #2122: Нарушение изолированной среды: SoundMixer.computeSpectrum: dl.dropbox.com/u/80206417/habr_articles/visualization/swf/HalosCorona.swf не может осуществить доступ к cs1-25.userapi.com/d30/0251ad7fafb595.mp3. Необходим файл политики, но, когда были загружены эти мультимедийные данные, флаг checkPolicyFile не был установлен.
at flash.media::SoundMixer$/computeSpectrum()
at Main/ComputeMaxSpectrumValue()
at Main/Update()
А в остальном здорово 8)
at flash.media::SoundMixer$/computeSpectrum()
at Main/ComputeMaxSpectrumValue()
at Main/Update()
А в остальном здорово 8)
Управление характеристиками звука в режиме реального времени для AS3 — ChaosVision
Sign up to leave a comment.
Визуализация для музыкального плеера