5.10. Dot product
Dot product позволяет вычислить скалярное произведение векторов.
1) В Vector A подаётся первый вектор (список или дерево данных);
2) В Vector B подаётся второй вектор (список или дерево данных);
3) Unitize (булевое значение) преобразовывает вектора в единичные при True и не преобразовывает при False.

1) Если два вектора направлены в противоположные стороны, то Dot product будет равным -1:
2) Если два вектора направлены строго в одном направлении, то Dot product будет равным 1:
3. Если два вектора направлены перпендикулярно друг к другу, то Dot product будет равным 0:
3) Произвольный угол между векторами будет давать числа в диапазоне от -1 до 1.
Таким образом при помощи Dot product можно проверять перпендикулярность векторов, их параллельность.
Пример 1
Рассмотрим абстрактный пример. На изображении ниже приведено дерево данных (нод Tree example). При помощи панели можно наблюдать, что в каждой ветке хранится разное количество элементов. Например в ветке с путём {0;0} хранятся целые числа 1,2. А в ветке с путем {0;2} 1,2,3 т.е. три числа. В последней ветке находятся четыре элемента: 1,2,3,4.
Обратите внимание, что в Minimum нода Prune Tree подаётся число 2. И в Maximum так же подаётся число 2. На выходе в панели можно видеть, что все ветки с количеством элементов больше, чем 2 удалены.

Если же изменить параметр Maximum в ноде Prune tree, то в панели можно наблюдать как удаленные ветки на выходе сохраняются.
Если визуализировать дерево данных, то его структура выглядит следующим образом:
При выставлении значений в Minimum значение 2 и в значение Maximum так же 2, то удалятся все ветки, у которых меньше и в тоже самое время больше двух элементов:
Пример 2
Представьте себе ситуацию, в которой вам необходимо удалить из некоторого паттерна определённые группы элементов. Например в паттерне изображенном ниже три группы элементов: синяя группа, оранжевая и белая. В синей в каждой группе по 2 элемента, в оранжевой по 3, в белой по 1:
Обратите внимание на структуру хранения элементов паттерна на изображении ниже. Каждая группа элементов представлена разным количеством элеметов в дереве данных. В панели окна Grasshopper это отчётливо видно.
Если необходимо удалить все оранжевые элементы паттерна, или например белые, то можно обратиться к ноду Prune tree и удалить все ветки с тремя, двумя или одним элементом. Таким образом решение сводится к простому и эффективному решению.

Например мы решили оставить только те ветки, в которых содержатся строго 3 элемента. В таком случае в Minimum необходимо подать число 3 и в Maximum так же число 3:
Либо же оставить все ветки, в которых больше 2, но в тоже самое время меньше 3 элементов. В таком случае мы оставляем синие и оранжевые элементы:
Оцените этот урок и помогите тем самым сделать его лучше.
Контакты
Время работы
  • Понедельник - пятница
  • с 10 до 19 часов
Подпишитесь на еженедельную рассылку
© 2022 SKY ARCH SCHOOL
ИП Аюпов АМ. Все права защищены