Часто возникает необходимость протестировать некоторую математическую модель прежде чем ее кодить в ActionScript или другой любой язык. Построить парочку красивых графиков, подогнать параметры. Конечно, можно быстренько накидать приложеньеце и нарисовать все во Flash, но зачем, когда есть куча специализированного математического софта? Мне когда-то в универе вдалбливали основы Maple, так что теперь с переменным успехом я пользуюсь им. Надо сказать, что я полный нуб и делаю все методом тыка, что не мешает мне тем не менее получать нужные результаты.
Итак, понадобилось мне запрограммить некоторое псевдослучайное колеблющееся движение. Мне нужен такой паттерн с периодичностью, резкими рывками, затуханием.
Открываю Maple. Начинаю задавать константы.
minAmp — минимальное значение глобальной амплитуды,
maxAmp — максимальное,
minLen — минимальная длина волны,
deltaLen — minLen + deltaLen = maxLen — максимальная длина волны,
speed — скорость маленькой волны (позже убилось).
Далее функции длины волны и амплитуды.
Длину волны я в примере брал константой, не хватило времени переписать под функцию, хоть там и не долго. Тут вроде бы все понятно. От некоторого x считается длина волны и амплитуда, обе периодичны.
Получается такой график амплитуды.
Теперь в это можно подставить еще один синус, который будет в амплитуду упираться.
Какая-то цикличность есть, но уж слишком криво. Теперь надо добавить много рандома.
Вот эта функция генерит рандом. Проще говоря, есть некоторый seed, который растет от “больше нуля” до “чуть больше единицы” на dseed, потом резко сбрасывается на единицу (почти до нуля) и меняется скорость роста dseed на некоторую величину определяемую переменными minRand и ampRand. И далее возвращается результат в предпоследней строчке. Отсюда получается такой рваный ритм, а из-за разброса dseed то быстрое, то медленное движение. И все это ограничено еще амплитудой, что выше.
В итоге имеем следующий результат.
Вот это уже рандом. Играясь с параметрами, можно получить весьма интересные результаты.
Ну и пример. Долго лучше не смотреть. И он солидно грузит систему, так что рекомендую эту страничку закрывать.
Maple исходник на всякий случай.






