Точки притяжения можно использовать для экспериментов с геометрическими узорами. Их можно применять для постепенного изменения объектов на основании расстояния.
В ходе данного рабочего процесса вы получите следующие навыки:
создание, редактирование списков и управление ими;
перемещение точек в окне 3D-просмотра с помощью непосредственной манипуляции;
изменение режима выполнения.
В рамках этого упражнения требуется создать окружность (цель), в которой входные значения радиуса определяются расстоянием до ближайшей точки (связь).
Точка, определяющая отношение на основе расстояния, обычно называется точкой притяжения. В данном случае расстояние до точки притяжения будет использоваться для определения размера окружности.
Скачайте файл примера, щелкнув указанную ниже ссылку.
Полный список файлов примеров можно найти в приложении.
Наметив цели и связи, можно приступать к созданию графика. Необходимо выбрать узлы, которые будут представлять последовательность действий, выполняемых приложением Dynamo. Сначала добавьте следующие узлы: Number, Number Slider, Point.ByCoordinates, Geometry.DistanceTo, Circle.ByCenterPointRadius.
Input > Basic > Number
Input > Basic > Number Slider
Geometry > Points > Point > By Coordinates(x,y,z)
Geometry > Modifiers > Geometry > DistanceTo
Geometry > Curves > Circle > ByCenterPointRadius
Разместив узлы, необходимо соединить их порты с помощью проводов. Эти соединения будут определять поток данных.
От узла Number к узлу Point.ByCoordinates
От узла Number Sliders к узлу Point.ByCoordinates
От узла Point.ByCoordinates (2) к узлу DistanceTo
От узлов Point.ByCoordinates и DistanceTo к узлу Circle.ByCenterPointRadius
После того как мы определили последовательность потока данных, нам остается только дать Dynamo команду на выполнение программы. После выполнения программы (автоматически или путем нажатия кнопки «Выполнить в ручном режиме») передача данных будет осуществляться по проводам, а результаты появятся в области 3D-просмотра.
Нажмите «Выполнить». Если на панели выполнения задан ручной режим, необходимо нажать кнопку «Выполнить», чтобы запустить выполнение графика.
Просмотр узла: при наведении указателя на поле в правом нижнем углу узла появится всплывающее окно результатов.
3D-просмотр: если какой-либо узел создает геометрию, то она будет отображаться в области 3D-просмотра.
Геометрия вывода в узле создания.
Если программа работает правильно, то в области 3D-просмотра должна появиться окружность, проходящая через точку притяжения. Теперь можно добавить дополнительные подробности или элементы управления. Настройте входные данные для узла окружности, чтобы было можно регулировать их влияние на радиус. Добавьте еще один узел Number Slider в рабочую область, а затем дважды щелкните в пустой области рабочего пространства, чтобы добавить узел Code Block. Отредактируйте поле в узле Code Block, указав значения X/Y
.
Code Block
От узлов DistanceTo и Number Slider к узлу Code Block
От узла Code Block к узлу Circle.ByCenterPointRadius
Чтобы процесс пошаговой разработки программы был эффективен, рекомендуется начинать с простой структуры, которую затем можно постепенно усложнять. Если программа позволяет успешно создавать одну окружность, то ее можно усложнить и использовать для создания сразу нескольких окружностей. Для этого вместо одной центральной точки можно задать сетку точек, данные из которой будут использоваться в итоговой структуре. В результате каждая из полученных окружностей будет иметь уникальное значение радиуса, определяемое калибруемым расстоянием до точки притяжения.
Добавьте узел Number Sequence и замените входные данные узла Point.ByCoordinates. Щелкните правой кнопкой мыши узел Point.ByCoordinates и выберите «Переплетение» > «Перекрестная ссылка».
Добавьте узел Flatten после узла Point.ByCoordinates. Чтобы выровнять список полностью, оставьте для входа
amt
значение по умолчанию (-1
).Область 3D-просмотра обновляется, и в ней появляется сетка окружностей.
Манипуляции с числами не всегда являются оптимальным подходом. Теперь геометрию точки можно корректировать вручную при навигации по области фонового 3D-просмотра. Также можно управлять другой геометрией, построенной на основе точки. Например, узел Sphere.ByCenterPointRadius также поддерживает режим непосредственного манипулирования. Для управления положением точки можно задать наборы значений X, Y и Z с помощью узла Point.ByCoordinates. Однако с помощью метода непосредственного манипулирования можно обновлять значения регуляторов путем перемещения точки вручную в режиме навигации по области 3D-просмотра. Это обеспечивает более интуитивный способ управления набором отдельных значений, которые определяют положение точки.
Для использования метода Непосредственное манипулирование выберите панель точки для перемещения. Над выбранной точкой появятся стрелки.
Переключитесь в режим Навигация по области 3D-просмотра.
Наведите курсор на точку. Появятся оси X, Y и Z.
Чтобы переместить соответствующую ось, щелкните и перетащите цветную стрелку. При перемещении точки вручную значения в узле Number Slider динамически обновляются.
Обратите внимание, что до перехода в режим Непосредственное манипулирование с компонентом Point.ByCoordinates был соединен только один регулятор. При перемещении точки вручную в направлении по оси X автоматически создается новый узел Number Slider для указания входных данных по оси X.