» Создание циклов
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

Создание циклов

English | Italian | French

The original english version of this page is newer and may contain information this translation does not have! Click here to view the english version.

Почему я не могу соединить два пина одинакового типа?

Скорее всего потому, что это создаст цикл в патче.

Идея циклов (одна из основ кибернетики) это очень мощный инструмент, но при создании патчей вы должны учитывать, что: vvvv обсчитывает все ноды в патче только один раз в конкретный момент времени

Это позволяет значительно упростить логику построения и отладку патчей, поскольку все события в патче происходят одновременно. Здесь нет заданного порядка выполнения (в отличие от таких графических языков, как Max или PD). Все расчеты выполняются автоматически в нужной последовательности, так что вам не нужно думать об этом. Кроме того, обычно ноды не задерживают передачу данных (как в цифровой электронике). Вам не надо беспокоиться, что данные придут не вовремя.

Хотя все это весьма полезная теория, есть один момент, на котором нам нужно остановиться. Когда вы прописываете цикл, выход не может быть посчитан до тех пор, пока не известен вход, но так же не возможно посчитать вход, пока не известен выход.

Хотя это звучит как классический парадокс, приводящий к зависанию компьютера и появлению синего экрана, решение очень простое: в каком-то месте цикла, нам нужно запомнить значение предыдущего момента времени.
Так мы избегаем бесконечного заведения данных самих в себя. Помните, что очень важна позиция где именно мы храним здачение предыдущего момента, и малейшие изменения здесь существенно влияют на поведение всего цикла.

Поэтому, каждый раз, когда вы проводите новую связь, vvvv проверяет возможность ситуации в один и тот же момент времени входные данные нода зависят от выходных данных этого же нода. Если это так, vvvv не позволяет делать такие связи. VVVV не знает откуда взять значение предыдущего момента.

Но как тогда делать циклы?

Очень просто: такие ноды как FrameDelay (Animation)позволяют выходу не зависеть от входа в тот же момент времени, потому что вход предыдущего значения - это то, что допускается без проблем. Как только вы добавляете такой нод в цикл (некоторые другие ноды так же обладают этим свойством), вы можете замыкать цикл.

Сложно сказать, где именно должна находиться задержка - это зависит, в первую очередь, от логики патча. Когда вы выстраиваете логику, необходимое место для задержки почти всегда находится интуитивно.

Циклы это очень сильный инструмент, потому что это не только отличный способ хранить изменяющиеся во времени значения, но и счетчики, повторяющиеся вычисления и анимация - так что подружитесь с ними.

При создании циклов с использованием нода FrameDelay (Animation) крайне важно избегать пустых спредов Empty Spreads...
Если при возникновении проблем при сохранении или открытии патчей, вы обнаружите, что один или несколько модулей, задействованных в цикле, выдают пустое значение, следует поместить модуль ReplaceEmpty после FrameDelay (Animation).

anonymous user login

Shoutbox

~11d ago

joreg: Last call: 6-session vvvv beginner course starting November 4: https://thenodeinstitute.org/courses/ws24-5-vvvv-beginners-part-i/

~25d ago

joreg: Missed the last meetup? You can rewatch it here: https://www.youtube.com/live/MdvTa58uxB0?si=Fwi-9hHoCmo794Ag

~25d ago

theurbankind: When is the next big event, like node festival ?

~28d ago

~29d ago

joreg: Join us for the next vvvv meetup on Oktober 17th: https://visualprogramming.net/blog/2024/25.-vvvv-worldwide-meetup/

~1mth ago

joreg: 6 session beginner course part 2 "Deep Dive" starts January 13th: https://thenodeinstitute.org/courses/ws24-5-vvvv-beginners-part-ii/

~1mth ago

joreg: 6 session beginner course part 1 "Playground" starts November 4th: https://thenodeinstitute.org/courses/ws24-5-vvvv-beginners-part-i/

~1mth ago

joreg: Save the date: Oktober 17: vvvv meetup in Berlin!

~1mth ago

joreg: 12 session online vvvv beginner course postponed to start November 4th: https://thenodeinstitute.org/courses/ws24-5-vvvv-beginners-class/

~2mth ago