English | French | Spanish | Japanese | Italian | Korean | Mandarin
Этот урок подразумевает, что вы знакомы с упражнениями из урока 2: Ваш друг Инспектор.
Прежде чем наступит тот день, когда вы решите сдать экзамен на черный пояс по vvvv, и прежде чем вы рискнете соперничать с мастерами, убедитесь в том, что вы полностью усвоили суть спредов (spreads). Прочитайте этот урок очень внимательно. Вам понравится. Потому что:
Прежде всего. Слово Spread означает список. Всего лишь упорядоченный список. Будь то values, strings, colors,... а каждая строка в этом списке называется Slice.
Вы уже знаете, что каждый пин относится к тому или иному типу данных vvvv (таких как числа, строки, цвет, списки, ноды). О чем до сих пор не упоминалось, так это о том, что пин может передавать не одно значение, а целый список значений.
Вы можете выяснить количество слайсов в пине просто наведя курсор мыши на пин. Создайте LinearSpread (Spreads) и наведите курсор на его выходной пин. Ничего особенного. Пока. Теперь установите значение 5 для входного пина SpreadCount. Снова наведите курсор на выходной пин. Вы должны увидеть (5) после значением.
Этот не хитрый прием показывает, что даже если у вас 5 слайсов, в подсказке вы увидите только один. Это хорошо. Предположим, что у вас не 5, а 9874 слайса. Вы вряд ли заходите увидеть все сразу во всплывающей подсказке. И конечно есть другой способ увидеть все слайсы спреда. Помните финал прошлого урока? В Инспекторе вы видите две стрелки у выходного пина, кликнув на них, вы увидите весь спред в правой колонке.
Существует несколько нодов аналогичных LinearSpread (Spreads), они генерируют спреды в различных техниках. Рекомендуем вам пробежаться по help-патчам (см.helppatches) для CircularSpread (Spreads), RandomSpread (Spreads) и I (Spreads).
Смотрите шире. Если во входной пин приходит 5 строк, как нод интерпретирует эти 5 строк? Сойздайте Renderer (GDI) и подключите к нему Point (GDI). В результате вы увидите + в центре окна рендера (по умолчанию координаты X и Y равны нулю). Теперь доваьте LinearSpread (Spreads) к входному пину X Point (GDI) и задайте SpreadCount равным 5.
Вы видите как умно Point (GDI) интерпретирует спред. Он просто повторяет себя 5 раз, поскольку получает список из 5 значений, понимая их как 5 точек по координате X. Круто? А что бы вы сделали на месте точки?
Так, теперь посмотрим, что будет если мы подсоединим спред с другим количеством слайсов к другому пину. Сдублируйте LinearSpread (Spreads), но установите SpreadCount = 2 и подключите его к входному пину Y Point (GDI). Получилось:
Понимаете? Point (GDI) получает 5 значений по оси X и 2 значения по оси Y. И вот что происходит:
Вот так. Любой нод обрабатывает спреды точно таким же образом. Конечно, если входной пин в принципе понимает спреды. Если пин не поддерживает спреды, то из всего спреда будет использован только первый слайс. Чтобы выяснить понимает пин спреды или нет, загляните в Инспектор. Значок > или >> между значением и названием пина, показывает, что пин поддерживает спреды.
Видео уроки на английском о спредах. the video tutorial.
В большинстве случаев вам не понадобится доступ к отдельным слайсам, поскольку большинство нодов обрабатывают спреды целиком. Но есть и масса причин, чтобы управлять отдельными слайсами. Предположим, нам нужно вручную управлять третьим слайсом из нашего первого LinearSpread (Spreads). Для этого сначала ставим SetSlice (Spreads) как показано ниже.
Крайний правый вход SetSlice (Spreads) устанавливает номер слайса, который мы хотим изменить.
Поскольку нумерация слайсов начинается с 0, а мы хотим изменить третий слайс, то ставим значение = 2. Второй входной пин задает значение для этого слайса. Поиграйте с этим значением и увидите, что третий + движется независимо от остальных.
А теперь взгляните сюда:
При помощи I (Spreads) мы говорим SetSlice (Spreads), что мы хотим управлять не только третьим слайсом, но всеми слайсами с первого по третий. И еще одним LinearSpread (Spreads) мы создаем эти 3 значения...
И так далее.
Когда кажется что ничего не получится, спред приходит на помощь.
В этом месте мы так же рекомендуем взглянуть на help-патчи для: GetSlice (Spreads), Stallone (Spreads), Queue (Spreads) и Cons (Spreads).
А теперь нам пора рассказать кое-что еще Подробнее об IOBoxes
anonymous user login
~17h ago
~7d ago
~7d ago
~8d ago
~21d ago
~1mth ago
~1mth ago
~1mth ago
~1mth ago
~1mth ago