Декремент по логарифму
- Войдите на сайт для отправки комментариев
Пт, 02/12/2016 - 12:58
Нужно плавно уменьшать значение переменной по логарифмической кривой.
При линейном уменьшении нужного эффекта не получается. Кто пробовал делать подобное? Поделитесь рецептом?
Рецепт: плавно уменьшать значение переменной по логарифмической кривой
Или я что-то не так понял?
На всякий случай: чтобы не считать логарифм, воспользуйтесь сеточной функцией.
И еще: "плавное уменьшение по логарифмической кривой" есть ни что иное как геометрическая прогрессия. Т.е. Вам нужно просто умножеть на число меньшее 1. Если в целых числах, то можно использовать дробь M/N, где N - степень 2.
Я не особо силен в математике :) Есть какой либо пример?
https://ru.wikipedia.org/wiki/%D0%9B%D0%BE%D0%B3%D0%B0%D1%80%D0%B8%D1%84...
Спасибо Клопоуцей, но это не пример
Я не особо силен в математике :) Есть какой либо пример?
Тогда почему решили, что нужна именно логарифмическая кривая?
PS. Да и особой "силы" не нужно: геометрическая прогрессия - это школьный курс.
Решил, так светодиод лучше всего регулировать по логарифмической кривой. Школу я закончил 15 лет назад, поэтому курс не особо помню :)
Решил, так светодиод лучше всего регулировать по логарифмической кривой. Школу я закончил 15 лет назад, поэтому курс не особо помню :)
здесь большинство твоих братьев по несчастью - крепись, друг, мы вместе, наснесломить!
Я не особо силен в математике :) Есть какой либо пример?
Есть много примеров (сильны ли Вы в английском ?), вот навскидку : https://diarmuid.ie/blog/pwm-exponential-led-fading-on-arduino-or-other-platforms/
Сильны. Спасибо, почитаю
Тогда вот Вам ещё : http://playground.arduino.cc/Main/Fscale
Спасибо. Вообще среди тех, кто работает со светодиодами и силовыми двигателями тема-то актуальная, но поднимается редко
Вряд ли.
Светодиод выполняет функции лишь индикатора. Требования к реализуемой функции отклика очень мягкие.
По поводу двигателей - они, как правило, имеют достаточно высокий порог, ниже которого вращение просто не начинается. Поэтому реализовывать на оставшемся участке какую-либо функцию отличную от линейной вряд ли целесообразно.
Спасибо. Вообще среди тех, кто работает со светодиодами и силовыми двигателями тема-то актуальная, но поднимается редко
Может тема и актуальная, но 1) вы эту тему не сможете потянуть, 2) вы даже не поймете решение данной темы 3) и даже если ткнуть на решение, вы не поймете и это.
ПС: Смиритесь . У каждого человека есть потолок в некоторых темах. И этот потолок просто ему не преодолеть, даже если всем форумом вас в ж..у пинать.
))))
Делайте так:
вместо а=а-1
пишите а=а*0.9.
ПС. Думаю понятно что конкретные цифры выбраны чисто с потолка и для примера. Промоделируйте процесс например в екселе, думаю поймете. Следите за разрядностю, иногда вместо а=а*0.9 полезней а=а-а*0.1-1.
Школу я закончил 15 лет назад, поэтому курс не особо помню :)
Странно это.
Мои дети учились в школе одновременно с Вами. Следовательно, школу я закончил намного раньше Вас, а школьный курс еще помню. С чего бы это?
Вероятно, Вы на протяжении 15 лет просто ни разу не испытывали потребность вспомнить что-то из школьного курса. А раз так, совершенно прав qwone в 13-м посте.
Кстати, кто ему добавил "-1"? Высказался он, конечно, жестко, но вполне объективно. Так что [я] подправил ему баланс.
Кстати, кто ему добавил "-1"?
да! кто этот мудак? - выходи!
Из qwone получился бы отличный преподаватель. Вас не надо учить, то что вы знаете, это ваш потолок :) Надеюсь вы не преподаватель.
Andriano, есть одно маленькое исключение. Мотор-Редуктор имеющий нагрузку с большой центробежной силой регулируется именно логарифмической кривой, а при линейной эта самая центробежная сила опережает мотор и дает рывки.
Правда нашел выход проще. Взял класс NoDelay от Клопоуция и сделал нарастающее время паузы
Откуда появились логарифмы? Раньше народ тупо считал числа на бумажке или в уме, разумеется у кого он был. Но если складывать и вычитать было достаточно быстро, то умножение и деления , замечу больших чисел, занимало достаточно много времени и могли еще и ошибиться. Но сейчас уже не люди складывают и умножают, а компьютеры. И делают достаточно быстро . Так что в обычных ситуациях все нормально и без них.
Где используются логарифмы. Так есть числа float . Мантиса и порядок(2 в степени логарифма двоичного числа).
Вот вам и результат. Человеку иногда полезно понять свой потолок, что бы быстро найти решение, а не выносить форум своими тараканами.
Из qwone получился бы отличный преподаватель. Вас не надо учить, то что вы знаете, это ваш потолок :) Надеюсь вы не преподаватель.
Megawollt, Вы опять все перепутали.
Здесь - не учебное заведение. Здесь - форум. А на форуме люди общаются. На равных. А Вы на равных - не можете. Потому, что забыли школьный курс. Сначала вспомните, потом приходите.
Andriano, есть одно маленькое исключение.
Исключений - масса. Я сам пользуюсь такими "исключениями". Как я уже написал, через сеточную функцию. Вполне вероятно, что Вам достаточно через геометрическую прогрессию, как написал Logic. Но если Вы забыли, что такое геометрическая прогрессия, то следовало бы спросить это у Гугла, Википедии, etc. Вы же предпочли заявить, что закончили школу 15 лет назад и ничего не помните. Если не помните и не хотите вспоминать, послушайте совет qwone и найдите себе занятие попроще.
Вопрос не в том, что в Вашем образовании есть существенные пробелы, а в том, что Вы эти пробелы не хотите устранять.
Спасибо. Вообще среди тех, кто работает со светодиодами и силовыми двигателями тема-то актуальная, но поднимается редко
угу. вот надыбал, пусть полежит до поры. А то как надо - хрен найдеш.
https://habr.com/ru/post/469327/
Пусть N-разрядные двоичные беззнаковые числа, отображают интервал [0, 1]. Для удобства будем считать единицей число
2N, а не
2N−1, и соответственно двойкой число
2N+1. Напишем программу по образу и подобию предыдущей, но работающую с целыми числами: